Google+ Quarta Info B: Sistemi: Assembler, CPU, bus

domenica 30 settembre 2012

Sistemi: Assembler, CPU, bus

Assembly:
La prima istruzione che eseguiamo in un qualsiasi  programma scritto in assembly è l'istruzione Segment.
L'istruzione segment può essere:
- Data Segment: segmento di memoria dove si dichiarano le variabili globali o quelle allocate dinamicamente
- Stack Segment: su questo segmento ci va un po' di tutto, serve per i dati delle funzioni, per passaggio di testo ecc...
Praticamente è una memoria dove si salvano dei dati che dobbiamo riutilizzare in seguito
Esempio: Quando utilizzo una call per saltare ad un blocco di istruzioni. Per ritornare all'istruzione seguente alla call si memorizza in numero dell'istruzione sulla Stack segment, così che tramite la funzione Ret si possa tornare all'istruzione e continuare l'esecuzione del programma.
- Code Segment: segmento dove è contenuto il codice del programma, cioè le istruzioni da eseguire.


Differenza tra processo e programma: Il primo è un insieme di istruzioni, mentre il secondo sono le istruzioni di un programma che sono eseguite in sequenza da un computer.

CPU: sigla inglese di Central Processor Unit

 Registri: sono zone di memoria riservate al processore per eseguire le varie istruzioni.

ALU: dall'Inglese, Arithmetic Logic Unit, è l'unità della CPU addetta ad eseguire i calcoli aritmetici.

FPU: Floating-Point Unit, è designata per eseguire calcoli con numeri con la virgola.





I processori sono formati da una pipeline ( una catena di montaggio) così che il processore può eseguire più istruzioni contemporaneamente.  
- Fetch: preleva dalla memoria l'istruzione da eseguire, incrementando il registro delle istruzioni IP o PC (a meno che non ci sia una JMP, CALL, RET ecc..).

- Decoder: come dice il nome, decodifica l'istruzione da eseguire.

- Read: ricerca i dati che servono per l'istruzione da eseguire.

- Exec. : esegue fisicamente l'istruzione.
                   
                                                                                                        - Write: Scrive in memoria il risultato
                                                                                                        ottenuto.

I processori moderni sono superscalari, cioè possono portare avanti due o più processi contemporaneamente.
Le CPU si possono distinguere in due grandi categorie:
- RISC (Reduce Istruction Set Computer): CPU caratterizzata da istruzioni semplici
- CISC (Complex Istruction Set Computer): CPU caratterizzata da istruzioni molto più complesse, per questo è molto più difficile avere delle pipeline su questi processori.

I computer moderni hanno l'hardware della macchina collegato secondo la tecnologia di Neumann

Con I/O si intendono tutte le periferiche input/output che interagiscono con il processore e la ram




Il collegamento tra i vari componenti (il Bus) è composto da un bus indirizzi, un data bus e un bus di controllo

La velocità della ram è molto più lente rispetto a quella del processore: proprio per questo sul bus si viene a formare un "collo di bottiglia", un rallentamento nel passaggio dei dati.
Per risolvere questo problema si utilizza la cache, memoria a più livelli del processore per arginare il problema del passaggio dei dati. La cache più è vicina al processore (cioè ha un livello più basso) più sarà veloce e sarà di dimensioni contenute, mentre allontanandosi aumenterà di dimensioni e diminuirà di velocità. Le moderne CPU a più core hanno 2 cache riservate a core più una cache unica per tutte i core, che naturalmente essendo condivisa avrà più memoria.

Fattore energetico: Una CPU consumerà più energia se è attraversata da una tensione maggiore o se lavora a frequenze più elevate rispetto al suo standard.

I processori sono formati da dei transistor, dei dispositivi elettronici che possono funzionare da interruttori azionati da un impulso eletttrico.

Quando l'ingresso In sarà a  0 in uscita avremo 1 ( 5V) di tensione, mentre se In è 1 in uscita avremo 0.


Nessun commento:

Posta un commento