GUIDA La Cpu Spiegata Ad Un Nabbo

Stato
Discussione chiusa ad ulteriori risposte.

Reverser

Utente Attivo
333
251
Ottimo L30N4R50. L'importante è che stai capendo cosa stai facendo.

Quello si chiama contatore binario, con conversione da binario a Esadecimale.

Ora maggno e poi proseguiamo.

- - - Updated - - -

Bellissima guida! Utilissima! Io non ne capisco niente di elettronica ma grazie a questa guida ho capito finalmente qualcosina, grazie! :)
Guardate cosa sono riuscito a fare:
353a71y.png


Devo rivedere il mio complimento: è un circuito senza senso, con delle uscite in cortocircuito. Però è molto ordinato! :D
 

L30N4R50

Nuovo Utente
9
1
Ottimo L30N4R50. L'importante è che stai capendo cosa stai facendo.

Quello si chiama contatore binario, con conversione da binario a Esadecimale.

Ora maggno e poi proseguiamo.

- - - Updated - - -




Devo rivedere il mio complimento: è un circuito senza senso, con delle uscite in cortocircuito. Però è molto ordinato! :D
Non ho capito cosa è il cortocircuito e poi non ho capito anche come faccio a controllare i codici che mi appaiono sul display.
 

Reverser

Utente Attivo
333
251
LEZIONE 4: Continuamo con i linguaggi, dalla Macchina all'Uomo

Allora... eravamo rimasti al Registro, che sostanzialmente è una memoria molto elementare, costituita da un Flip-Flop (due porte logiche incrociate tra di loro).

Un Registro può memorizzare un bit, 4 registri memorizzano 4 bit, e 8 registri collegati in parallelo memorizzano 8 bit.
Un Processore-CPU a 8 bit contiene un numero consistente di registri a 8 bit. Un processore a 16 bit ha registri a 16 bit, uno a 32 contiene registri a 32 bit e così via.

Questi registri memorizzano dati in coda da passare poi all'ALU che può fare una operazione per volta. I registri poi si curano anche di passare i risultati dell'ALU verso le uscite.


Grosso modo una CPU elementare ha questi componenti base.

Ora vediamo il Bus di memoria esterna.

Che czz è un bus? Tanti lo nominano ma nessuno vi spiega cosa è.

Un BUS è un insieme di linee dove transitano dei segnali. Un processore a ( bit ha 8 fili di ingresso e 8 di uscita. Ecco, questi 8 fili presi nel loro insieme vengono chiamati BUS.

IMPORTANTE: Il BYTE
Un BYTE è un insieme di 8 bit. Questo è un BYTE 01101101 anche questo 11111111 e anche questo 00000101.
Insomma, un gruppo di 8 cifre binarie, di 8 bit, compone un BYTE.
Quindi una memoria da 256 B (B maiuscola contro la b minuscola di bit) 256 BYTE, contiene 256x8 celle (registri, cubetti, visti prima) per un totale 2024 bit. Quindi 256 numeri composti da 8 bit ciascuno


Ora veniamo al coduice Esadecimale.

Abbiamo detto che una CPU capisce SOLO il codice binario, o Linguaggio macchina. Quindi che ce ne facciamo del linguaggio Esadecimale?

E' importante comprendere che il solo linguaggio che capisce un integrato digitale (la CPU, ma non solo questo genere) è quello macchina composto da zeri e uno. UN SOLO LINGUAGGIO.

Tutti gli altri, qualsiasi altro, l'Esadecimale, l'Ottale, il BCD, il C. il C++ e così via a salire verso linguagi sempre più complessi e lontani dalla CPU, SERVONO ESCLUSIVAMENTE ALL'UOMO.

Va da se che programmare una CPU a mano, inserendo a mano ogni 0 e ogni 1 di programma, c'è da diventare scemi. Allara qualche "cranio" si è inventato il liguaggio Esa (un ricercatore della IBM). Il linguaggio Esa è il primo tentativo di evitare di programmare a mano ogni singolo bit da inviare alla CPU. Vediamo come funzia.

Abbiamo detto che il linguaggio Esa ha 16 combinazioni possibili: dallo 0 fino alla lettera F (0123456789ABCDEF), quindi se scrivo F, significa che ho scritto 15, ovvero 1111 (binario).

E se scrivo FF?

Se scrivo FF ho semplicemente scritto due gruppi di 4 bit ciascuno, cioè 1111 1111 Ora se li metto insieme faccio un BYTE (i soliti 8 bit).
Quindi con 2 numeri ESADECIMALI descrivo un BYTE.
Un BYTE va da 0 (00000000 8 zeri) a 256 (11111111 sempre 8 cifre).

Non fate confusione.

Questi sono i numeri 0 e 1: 0000 00001

Ma anche questi sono uno 0 e un 1: 00000000 00000001

Solo che uno appartiene ad un numero binario a 4 bit, mentre il secondo ad un numero binario ad 8 bit, cioè un BYTE, ma hanno lo stesso valore numerico. Capito?

Un numero a 4 bit può essere rappresentato PER L'UOMO, PER IL PROGRAMMATORE, anche in Esa con un valore da 0 a F
Un numero a 8 bit (un BYTE) può essere rappresentato PER L'UOMO, PER IL PROGRAMMATORE, anche in Esa con un valore da 00 a FF
Un numero a 16 bit (2 BYTE) può essere rappresentato PER L'UOMO, PER IL PROGRAMMATORE, anche in Esa con un valore da 0000 a FFFF
Un numero a 32 bit (4 BYTE) può essere rappresentato PER L'UOMO, PER IL PROGRAMMATORE, anche in Esa con un valore da 00000000 a FFFFFFFF
Un numero a 64 bit (8 BYTE) può essere rappresentato PER L'UOMO, PER IL PROGRAMMATORE, anche in Esa con un valore da 00000000000000000 a FFFFFFFFFFFFFFFF (16 CIFRE)

Quindi, quando vedete una di quelle belle schermate blu, con scritto: ISRSS.EXE ha causato un errore irreversibile nel moduilo VBrun VXD 12D1:F9C0" significa che in quella locazione di memoria, in quel registro a 32 bit, c'è stato un errore (un numero che non doveva esserci)

whocrashed_windows_error.png

Questo perchè un Sistema Operativo come Windows 95 o 98 o XP, sono a 32 bit e sfruttano i registri a 32 bit delle vecchie CPU Pentium o Athlon.

Avete capito la differenza tra 1 bit ed un BYTE? (una cifra - 8 cifre)

PROGRAMMAZIONE

L'Assembler è il linguaggio delle CPU, ordinato per istruzioni, e descritte in un linguaggio umano.

Ora immaginate che ci sia un piedino della CPU chiamato DATI/ISTRUZIONI, una di quelle FLAG che abbiamo visto nelle lezioni prima.

Se lo mettete a 1 vuol dire che in ingresso si presentano dei dati da eleborare, cioè DATI
Se invece lo mettete a 0, vuol dire che il numero in ingresso NON è un DATO, ma un'ISTRUZIONE.

MicroProgramma Nabbo:

riga 01: 00000001 DATO (piedino DATI/ISTRUZIONI messo a 1)
riga 02: 00000001 DATO (piedino DATI/ISTRUZIONI messo a 1)
riga 03: 11110001 ISTRUZIONE DI SOMMA (piedino DATI/ISTRUZIONI messo a 0)
riga 04: 11100010 ISTRUZIONE BUTTA SULLE USCITE IL RISULTATO (piedino DATI/ISTRUZIONI messo a 0)

Questo NaBBo-Programma è molto semplice, tradotto in Umanesco:

riga 01: c'è il numero 1 in ingresso, è un DATO
riga 02: c'è il numero 1 in ingresso, è un DATO
riga 03: è un'ISTRUZIONE, devo fare la somma del dato 01 e del dato 02
riga 04: è un'ISTRUZIONE, devo mettere sulle uscite il risultato della somma, tra il DATO 01 ed il DATO 02. che ho appena fatto

Ora il NaBBO avanzato potrà capire quanto segue:

riga 01: 01
riga 02: 01
riga 03: F1
riga 04: E2

Che è sta roba? E' semplicemente lo stesso programma scritto in Esadecimale
Basta dividere i numeri in due gruppi da 4 e usare il numero da 0 a F

----------Binario---Esadecimale
riga 01: 0000 0001----- 01
riga 02: 0000 0001----- 01
riga 03: 1111 0001----- F1
riga 04: 1110 0010----- E2

Come si programma in Esadecimale?
Con questa tastiera:

DSC00889.JPG
schema_tastiera.gif

...che, guarda un pò... ha i numeri da 0 a 9 e le lettere da A a F.

Quindi, un programmatore che volesse sommare 2 numeri, non ha che da scrivere questo programma (quello più sopra)

scrivo 01 (poi premo invio)
scrivo 01 (poi premo invio)
scrivo F1 (poi premo invio)
scrivo E2 (poi premo invio)
e tellellà che su un eventuale display ci sarebbe il risultato di quella somma.

L'Assembler è un passetto in più. C'è una micro sintassi con parole umane, ma il compilatiore Assembler (MASM) si cura di trasmormare quelle parole di un linguaggio unamo (Inglese) nelle nostre care cifre-lettere dell'Esadecimale, ed infine Binario, l'unico che la CPU capisce.

Esempio di istruzioni Assembler X86


mov ax,10 ; scrive 10 nel registro ax
mov bx,cx ; Scrive il valore del registro cx nel registro bx
mov dx,Number ; scrive il valore di Number dentro il registro dx

Questo sotto è un piccolo programma in Assembler che scrive "Hello World" sul monitor. Guardate quante cavolo di istruzionbio bisogna scrivere per vedere una piccola frase sul monitor (finstra nera del DOS)!


Listing 1: 1STPROG.ASM ;
This is a simple program which displays "Hello World!" ; on the screen.
.model small
.stack .data

Message db "Hello World!$" ; message to be display

.code

mov dx,OFFSET Message ; Offset of Message is in DX register
mov ax,SEG Message ; segment of Message is in AX register
mov ds,ax ; DSDX points to string
mov ah,9 ; function 9 - display string
int 21h ; call DOS service
mov ax,4c00h ; return to dos DOS
int 21h ; call DOS service (spedisce la stringa "Hello Word" al monitor, o meglio, alla scheda video) END start ;end here

Quelli dopo il punto e virgola ; sono commenti per capire l'istruzione, ma servono solo a chi legge, non al programma


Qua invece si vede la famigerata istruzione Esadecimale 90 (in Assembler NOP, nessuna operazione) molto nota ad Hacher, o meglio Cracker come il sottoscritto...

Unbenannt.png

Per stasera basta!

Aggiorniamo il Nabbometro:

- Una CPU capisce SOLO il binario
- Una CPU deve contare
- Una CPU ha un Modulo di clock che scandisce il ritmo delle sue operazioni
- Una CPU esegue operazioni aritmetiche e logiche con il Modulo ALU
- Una CPU ha dei piedini, detti anche di FLAG, che indicano che è successo qualcosa di cui tenere conto
- Una CPU ha un numero elevato di Moduli Registri, che memorizzano i dati in attesa di passarli all'ALU o verso le Uscite
- Una CPU capisce SOLO il Binario, linguaggio di BASSO LIVELLO, ma l'uomo ha altre soluzioni di ALTO LIVELLO per programmarla.
- Una CPU da 8 bit in su usa i BYTE, ovvero istruzioni e dati composti da blocchi di 8 cifre, che sono anche due numeri Esadecimali
 
Ultima modifica:

SolkySoldier

Bannato a Vita
500
27
CPU
AMD Athlon II x2 250/AMD Phenom II X6 1090T/Intel Core I7 3770
Scheda Madre
Asrock N68 GE/Asus M4A77TD/Asus M4A89TD PRO/Asrock Z68 Extreme3 Gen3
HDD
SEAGATE 7200 500 GB
RAM
8192 MB DDR3 1333 MHZ
GPU
NVIDIA GT 9500 512 MB/Sapphire 6950 1GB/Palit GTX 670 Jetstream
Monitor
acer 20 pollici
PSU
cooler master 500 w
Case
cooler master 912
OS
windows 7 home premium
bellissima guida complimenti, il problema è la mia pigrizia nel leggere :asd:
 

Reverser

Utente Attivo
333
251
Lezione 5: Manca un pezzo! La FPU

Abbiamo visto il Modulo ALU ma c'è da fare un distinguo.

La ALU è in grado di fare tutte le operazioni matematiche...MA... non è particolarmente ben strutturata per eseguire le operazioni di numeri con la virgola, che in gergo informatico vengono chiamati numeri in virgola mobile. Per esempio il Pi greco 3,14 o radici quadrate con risultati con la virgola.

Naturalmente può farle, ma la sua architettura non consente di eseguirle in maniera efficiente e rapida, perchè impiegherebbe troppi cicli di clock anche per semplici operazioni di somma.
Ad un certo punto, quindi, si è proceduto, inzialmente, ad affiancare al processore vero e proprio, un altro processore esterno chiamato Co-Processore matematico. Successivamente, con il migliorare delle tecniche di integrazione, lo hanno infilato nello stesso contenitore della CPU.

Qua si vedono un vecchio 386, con suo fratello Co-Processore matematico - FPU, 387. Notare come il 387 sia su uno zoccolo, perchè non era indispensabile, ma poteva essere acquistato, ed inserito, in un secondo tempo.

637266262_d9a810544a_o.jpg

Altra coppia:

i386dx+and+i387dx.png


Questo Co-Processore matematico, non era altro che un processore sviluppato appositamente per eseguire calcoli matematici in virgola mobile, ma non poteva fare operazioni di logica binaria (gli AND, OR ecc.). Quindi messi insieme, CPU con dentro l'ALU e Co-processore matematico, facevano un processore c ompleto è più potente.

Quando poi li hanno integrati all'interno dello stesso contenitore, il Co-Processore matematico è stato chiamato FPU, acronimo di Floating Point Unity (Unità in Virgola Mobile), Quindi dentro una CPU abbiamo, di fianco all'ALU, una FPU, che si fa carico di tutti i calcoli dei numeri con la virgola, cioè che non sono degli interi.

CPUMAAAAN.png

La FPU è importante, importantissima, perchè oggigiorno tutti i iprincipali software, che non siano Word o il Solitario, utilizzano pesantemente le operazioni in virgola mobile, sopratutto giochi ed applicazioni professionali come CAD e Rendering 3D.

Rammento che inizialmente, ai tempi del 486 e poi dei primi Pentium, esistevano diversi concorrenti di Intel, come CyrinX, AMD, NextGen ed altri, ma si persero tutti per strada (e sparirono) proprio perchè, a fronte di buone prestazioni sui numeri interi, non riuscivano a stare dietro le ottime performance dell'unità FPU di Intel, per questo preferita dai Professionisti e dai Gamers.

cpu04cyrix-6x86.jpg cpu04amd-k6.jpg cpu04idt-winchip.jpg KL_NexGen_Nx586PF-100.jpg

La stessa AMD riusci a sopravvivere solo perchè, con grande sforzo ed investimenti, riuscì a battere (con l'architettura 786 del K7) la famigerata unità FPU di Intel, conquistando così, l'Olimpo dei processori consummer e il cuore dei Videogiocatori (a quel tempo le schede video facevano abbastanza pietà, quindi tutto era devoluto alla CPU-FPU).

Aggiorniamo il Nabbometro:

- Una CPU capisce SOLO il binario
- Una CPU deve contare
- Una CPU ha un Modulo di clock che scandisce il ritmo delle sue operazioni
- Una CPU esegue operazioni aritmetiche e logiche con il Modulo ALU
- Una CPU ha dei piedini, detti anche di FLAG, che indicano che è successo qualcosa di cui tenere conto
- Una CPU ha un numero elevato di Moduli Registri, che memorizzano i dati in attesa di passarli all'ALU o verso le Uscite
- Una CPU capisce SOLO il Binario, linguaggio di BASSO LIVELLO, ma l'uomo ha altre soluzioni di ALTO LIVELLO per programmarla.
- Una CPU da 8 bit in su usa i BYTE, ovvero istruzioni e dati composti da blocchi di 8 cifre, che sono anche due numeri Esadecimali
- Una CPU contiene al suo interno un Modulo FPU che si occupa delle operazioni sui numeri con la virgola
 

Alby46

Utente Èlite
3,276
422
CPU
Intel Pentium G645 2.90 Ghz
Scheda Madre
ASRock H61M-DGS
HDD
WD Caviar Blue 500 Gb 16 Mb
RAM
2x 4 Gb Corsair XMS3 1600 Mhz
GPU
Sapphire Radeon HD 7750 1 Gb
Audio
Realtek 7.1
Monitor
ASUS VB191T
PSU
Corsair CX 430
Case
CM K280
OS
Windows 7 HP x64 / Lubuntu 13.04 AMD64
Bellissima guida! Utilissima! Io non ne capisco niente di elettronica ma grazie a questa guida ho capito finalmente qualcosina, grazie! :)
Guardate cosa sono riuscito a fare:
353a71y.png
usi explorer?!?!?!?!?!??! bannatelo!!!! :asd:
 

attilorz

Utente Èlite
3,931
886
CPU
athlon 64 3200+ venice
Scheda Madre
DFI lanpary UT nf3 250GB
HDD
maxtor da 160 GB
RAM
256 MB corsair ddr 400 cl2
GPU
Nvidia FX 5500
Audio
disabilitata
Monitor
crt da 14"
PSU
enermax 400w (boh)
Case
1 scatola di 412s en plein air
OS
xp superlitted edition
bellissima guida :luxhello: dal grado di nabberrimo sono passato a nabbissimo :lol: ora una domanda che mi frulla in testa:
un i5 e un FX octa-core sono più o meno li in programmi come il CAD. ciò è dovuto alla presenza di 4 FPU condivise? se ne fossero 8 andrebbe meglio di un i7 extreme tipo?
 

Osko23

Utente Èlite
2,713
329
CPU
Intel i7 3770K @3.5 Ghz Cooled by Thermalright Silver Arrow
Scheda Madre
Gigabyte Z77 UD3H
HDD
SSD Samsung S830 SataIII 128 GB; Samsung Spinpoint F4 SataIII 7200rpm 1TB
GPU
Asus GTX970 Strix
Audio
VIA HD Audio 7.1
Monitor
Philips 226V-Line LED 23'' 1080p
PSU
Antec High Current Gamer 620w Modulare 80plus Bronze
Case
CoolerMaster HAF X
OS
Windows 10 Pro x64
Beh dipende anche dall'ipc che hanno queste unità di elaborazione, poi nel più tecnico non so entrare :D
 

Reverser

Utente Attivo
333
251
bellissima guida :luxhello: dal grado di nabberrimo sono passato a nabbissimo :lol: ora una domanda che mi frulla in testa:
un i5 e un FX octa-core sono più o meno li in programmi come il CAD. ciò è dovuto alla presenza di 4 FPU condivise? se ne fossero 8 andrebbe meglio di un i7 extreme tipo?


In effetti è così. Se gli FX avessero ciascun modulo una sua FPU, invece di averne una ogni due unità ALU, sarebbero estremamente performanti e sotterrerebbero anche un I7 di quelli seri.

Credo che il motivo principale per cui non è stato fatto siano stati i consumi. Aggiungere altre 4 unità FPU ad un 8150 avrebbe spinto il cosumo molto oltre i 200W.

Probabilmente il costo in termini di consumi è stato ritenuto inammissibile.

- - - Updated - - -
Ciao @Reverser, posso inserire questa guida in un altro forum? Ovviamente cito le fonti. ;)

Certo che puoi! ;)

- - - Updated - - -

INTERVALLO


Breve intervallo prima di ricominciare.

Qua sotto lo schema dei piedini di una CPU 8 bit molto famosa, lo Z80 della ZILOG

pinz80.png
A sinistra, in basso vedete il Bus dei DATI (ma anche delle ISTRUZIONI) che va da D0 a D7 (8bit appunto).

Le frecce vanno sia verso l'uscita che verso l'interno, ad indicare che i dati entrano ed escono dal processore sulle stesse linee ma, ovviamente, in tempi diversi.

Sopra abbiamo il BUS della memoria, più precisamente degli Indirizzi della memoria RAM (ma anche ROM), che studieremo la prossima lezione.

A destra ci sono un sacco di piedini di controllo.

Vediamone qualcuno per esempio:

Pin 6 CLK : E' l'ingresso del CLOCK (per questa CPU ci vuole un circuto integrato esterno che generi il CLOCK)
Pin 11 +5V: Sono i 5 Volt positivi (+) di alimentazione
Pin 29 GND: E' la massa (GROUND) il meno (-) dell'alimentazione

Pin 21 RD: (READ) Manda un segnale alla memoria RAM che la CPU vuole LEGGERE qualche dato contenuto dentro qualche cella
Pin 22 WR: (WRITE) Manda un segnale alla memoria RAM che la CPU vuole SCRIVERE qualche dato dentro qualche cella




- - - Updated - - -

Lezione 6: Guardiamo all'esterno: la Memoria

Ora cominciamo a gettare uno sguardo all'esterno della CPU. Abbiamo visto nell'INTERVALLO lo schema dei pin di una CPU, con il BUS dati e istruzioni (da D0 a D7) e il BUS degli indirizzi della memoria (da A0 a A15, cioè 16 bit).

41276d1355710149t-la-cpu-spiegata-ad-un-nabbo-pinz80.png

Vediamo come funziona.

Gli indirizzi a 16 bit della memoria significa un contatore (con un registro a 16 bit) che conta da 0000000000000000 a 1111111111111111 (16 cifre, 16 bit), tradotti in esadecimale abbiamo (ogni 4 bit abbiamo una cifra EXA) da 0000 a FFFF.

Questo significa che possiamo indirizzare 2+4+8+16+32+64+128+256+512+2024+4096+8192+16384+32768 = 65536 pagine diverse contenenti ognuna 8 bit (che finiscono sul BUS dati).

Per esempio, la CPU lancia l'indirizzo 0000 0000 1111 1111 (in EXA = 00FF) e in uscita potrrebbe esserci un numero qualsiasi a 8 bit. numeri che dalla memoria entra nella CPU dal BUS DATI/ISTRUZIONI. Insomma un ciclo chiuso. Vediamo uno schema:

ZX Spectrum Issue 6A - Schaltbild.jpg

Per ora osservate solo la CPU Z80 a sinistra e la ROM immediatamente alla sua destra. Osservate in alto il bus degli indirizzi a 16 bit (16 piedini, da A0 a A15)
Notate come il bus sotto a 8 bit (8 fili da D0 a D7) ritorni dentro la CPU i dati che sono contenuti in memoria.

Il ciclo quindi è questo:

- Il PC viene acceso
- la CPU viene resettata (con un circuitino di reset automatico di accensione) con tutte le uscite a zero, compresi gli indirizzi di memoria
- Indirizza il primo indirizzo del programma mettendo il numero 00000000000000000000 sulle uscite indirizzi e riceve sul bus DATI l'istruzione o il dato (sicuramente - la prima cosa che riceve appena acceso il PC è una istruzione, ovvero di fare qualcosa) contenuto all'indirizzo 0 (16 zeri)
- poi arriva un colpo di CLOCK e la CPU mette il suo bus indirizzi alla cella successiva cioè all'indirizzo 0000000000000001
- poi un altro colpo di CLOCK e va all'indirizzo 0000000000000002 e sul bus dati arriva l'ISTRUZIONE DATO numero 3 e così via

Con un bus indirizzi a 16 bit, abbiamo visto che si possono indirizzare 65535 celle da 8 Bit, cioè 64Kb di memoria, che erano quelli disponibili ai tempi sullo Z80 e, per chi se lo ricorda, il Commodore 64, con 64Kb di memoria appunto. Naturalmente a 8 Bit

IMPORTANTE: All'accensione ogni PC, ogni oggetto dotato di CPU, anche un telefonino, si resetta attraverso un piedino di RESET appunto. Lo stesso pulsante di reset che avete sul Case. Resettandosi mette tutti i suoi piedini a 0 (ZERO) sia le uscite che gli ingressi, in modo da avere una condizione di partenza perfettamente prestabilita. Poi, con il partire del CLOCK, la CPU comincerà ad avviare il contatore degli indirizza della memoria e a ricevere le conseguenti istruzioni, iniziando i primi sotto-programmi.

Questo è un circuitino di reset che si collega al piedino di RESET della CPU. Il condensatore e la resistenza danno un impulso solo quando si accende il PC ed arriva la tensione (reset alla partenza), il pulsante a sinistra è il pulsante che forza il reset, quello che schiacciate quando si pianta il PC.

reset.gif

schema3.gif

Aggiorniamo il Nabbometro:

- Una CPU capisce SOLO il binario
- Una CPU deve contare
- Una CPU ha un Modulo di clock che scandisce il ritmo delle sue operazioni
- Una CPU esegue operazioni aritmetiche e logiche con il Modulo ALU
- Una CPU ha dei piedini, detti anche di FLAG, che indicano che è successo qualcosa di cui tenere conto
- Una CPU ha un numero elevato di Moduli Registri, che memorizzano i dati in attesa di passarli all'ALU o verso le Uscite
- Una CPU capisce SOLO il Binario, linguaggio di BASSO LIVELLO, ma l'uomo ha altre soluzioni di ALTO LIVELLO per programmarla.
- Una CPU da 8 bit in su usa i BYTE, ovvero istruzioni e dati composti da blocchi di 8 cifre, che sono anche due numeri Esadecimali
- Una CPU contiene al suo interno un Modulo FPU che si occupa delle operazioni sui numeri con la virgola
- Una CPU DEVE avere una memoria esterna dove prende le ISTRUZIONI e i DATI del programma
- Una CPU ha un BUS indirizzi per indirizzare la memoria a fornire dalla sua uscita i dati/istruzioni, che poi rientrano dentro la CPU dal BUS DATI
- Una CPU ha un piedino di RESET che porta a zero tutti i suoi registri, tutte le sue uscite e tutte le sue entrate.

Adesso il Corso per Nabbo potrebbe essere finito. Passiamo a fare un po di domande su quanto discusso fino ad ora. Eventualmente possiamo continuare ad andare avnti facendo un Corso per NaBBo avanzato.

Andate con le domande...

P.S. Come si fa a mettere un messaggio stand alone, da solo, senza allungare questo qua?
 
Ultima modifica:
U

Utente cancellato 79971

Ospite
seguo con molto interesse!...per ora ho letto la prima lezione, ma sto sbavando sfogliando il resto del thread :+1:
fino adesso non ho mai seguiti il forum di tom's, ma ho trovato questo thread per caso e sono entusiasta :luxhello:...
...ti faccio i complimenti per la voglia e il tempo che perdi nel insegnare agli altri (a gratis) nabbi :D che vogliono imparare senza uccidersi di noia...
 
Ultima modifica da un moderatore:

Reverser

Utente Attivo
333
251
Bene! Vi ho sollecitato a fare qualche domanda per mettere bene a fuoco gli argomenti, ma vedo che non ce ne sonmo state, quindi deduco che è stato capito tutto fino all'ultimo bit! :D
 

attilorz

Utente Èlite
3,931
886
CPU
athlon 64 3200+ venice
Scheda Madre
DFI lanpary UT nf3 250GB
HDD
maxtor da 160 GB
RAM
256 MB corsair ddr 400 cl2
GPU
Nvidia FX 5500
Audio
disabilitata
Monitor
crt da 14"
PSU
enermax 400w (boh)
Case
1 scatola di 412s en plein air
OS
xp superlitted edition
visto che siamo entrati in tema FPU direi di parlare di come elaborano i dati le cpu in game come avevi spiegato in un altro thread. io volevo sapere cosa sono le pipeline?
 

Reverser

Utente Attivo
333
251
visto che siamo entrati in tema FPU direi di parlare di come elaborano i dati le cpu in game come avevi spiegato in un altro thread. io volevo sapere cosa sono le pipeline?

Azz! La Pipeline è l'ultimissimo dei livelli di una CPU! Lo possiamo vedere nel Corso per Nabbo avanzato!

Quanto alla FPU, in un gioco, o meglio, nei vecchi giochi (adesso è tutto demandato alla FPU) si occupa della gestione del calcolo della posizione dei triangoli.

Tu sai che un oggetto tridimensionale è descritto da una griglia di triangoli, detta anche vista in Wireframe

fig2.gif

al quale poi vengono applicate delle texture (tessiture) che sono delle immagini bitmap:

morphing.jpg

Ecco che lo spostamento nello spazio (virtuale) del monitor di questi triangioli, viene calcolato punto per punto, con un sistema di coordinate X-Y-Z, dall'unità in virgola mobile, visto che questi punti, nello spazio, non sono interi, ma numeri con la virgola. Diversamente vedresti gli oggetti "scattare" da un punto a quello successivo.

Analogamente le texture devono essere posizionate (e "stirate" secondo la prospettiva) con precisione sopra questi triangoli, quindi vanno posizionate negli stessi punti, indicati con numeri in virgola mobile degli apici dei triangoli.

Poi la FPU gestisce anche l'intelligenza artificiale (tipo degli zombi che ti inseguono) e la descrizione del mondo virtuale (le Leggi di fisica che determinano certi fenomeni, come anche le esplosioni).

Insomma, in un gioco la FPU fa un pò quasi tutto.

Anche per questo gli AMD FX remano un pò in game.
 
Ultima modifica:

attilorz

Utente Èlite
3,931
886
CPU
athlon 64 3200+ venice
Scheda Madre
DFI lanpary UT nf3 250GB
HDD
maxtor da 160 GB
RAM
256 MB corsair ddr 400 cl2
GPU
Nvidia FX 5500
Audio
disabilitata
Monitor
crt da 14"
PSU
enermax 400w (boh)
Case
1 scatola di 412s en plein air
OS
xp superlitted edition
per questo ora le schede video contano parecchio, perchè la loro capacità di calcolo in virgola mobile è molto più elevata rispetto ad una CPU che si limita a gestire fisica e IA
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili