Pagina 1 di 2

Architettura dei calcolatori

MessaggioInviato: 16 apr 2012, 17:53
da pierinter
Ciao a tutti.
In università sto seguendo il corso di ''Fondamenti di Architettura dei calcolatori".
Il problema è che però non è un gran bel corso, fatto abbastanza male secondo me.
Per fortuna c'è il libro di testo in cui riuscire ad andare a prendere le cose non chiare.
Oltre a questo però, c'è anche un interesse personale che mi spinge a capirci un po' meglio , anche andando oltre le lezioni universitarie.

Nonostante questo però ci sono delle cose estremamente DI BASE che non mi sono chiarissime e che sia sul libro sia durante il corso vengono un po' tralasciate.
In particolare:

1) Cosa cambia effettivamente tra un sistema ad esempio a 16 bit ed uno a 32 bit ?

Voglio dire, ok, ci hanno solo detto che lo spazio di indirizzamento è maggiore in quanto 2^32 è più grande di 2^16 quindi possibilità di utilizzare una memoria più grande ecc...ok.. ma non credo sia solo questo.
Cos'altro c'è?

Re: Architettura dei calcolatori

MessaggioInviato: 16 apr 2012, 18:50
da jumpmad
La differenza tra architettura a 8, 16, 32 e 64 bit sta nell'ampiezza dei registri della cpu e quindi nel modo in cui viene allocata la RAM, dire che la differenza sia nello spazio di indirizzamento è improprio, quella è una conseguenza ed un limite che ad esempio in Windows Server a 32bit è stato superato grazie ad in espediente (PAE) ed indirizza 64Gb di RAM

Re: Architettura dei calcolatori

MessaggioInviato: 16 apr 2012, 20:21
da pierinter
E come può la dimensione dei registri, portare ad un cosi grande incremento delle prestazioni?

Re: Architettura dei calcolatori

MessaggioInviato: 17 apr 2012, 9:25
da jumpmad
Non mi risulta questo grande salto prestazionale, teoricamente, applicazioni che fanno uso intensivo di grossi blocchi di memoria o calcolo in virgola mobile, potrebbero avvantaggiarsi dell'architettura a 64bit ma all'atto pratico molti test ad es. su windows 7 32/64 bit hanno dimostrato addirittura che il 32 bit nella maggior parte delle applicazioni supera in velocità il 64bit. In questo caso la differenza di capacità della RAM è l'unica cosa che può portare incrementi prestazionali in applicazioni che possono avvantaggiarsi di una quantità maggiore di 4Gb come grossi database o computer grafica, perché oltretutto possono far uso di calcoli in virgola mobile a 64 bit.
Nella stragrande maggioranza delle applicazioni però un'architettura a 64 bit potrebbe essere, per alcuni motivi, anche controproducente.

Re: Architettura dei calcolatori

MessaggioInviato: 17 apr 2012, 10:42
da GuidoB
pierinter ha scritto:1) Cosa cambia effettivamente tra un sistema ad esempio a 16 bit ed uno a 32 bit ?

Per esempio se devi sommare due numeri interi lunghi 32 bit, sulla macchina a 16 bit devi farlo in due istruzioni (prima sommi la parte bassa, poi con il riporto risultante sommi la parte alta). Se devi anche spostare tutti i dati dalla memoria ai registri della CPU e viceversa, devi aggiungere altri 6 trasferimenti da e per la memoria (magari impliciti nelle istruzioni usate).

Se hai una macchina da 32 bit, per la somma basta una sola istruzione, più 3 eventuali spostamenti degli operandi da memoria a registri e del risultato da registro a memoria.

Quindi una macchina a 32 bit è sensibilmente più veloce se opera principalmente su dati a 32 bit. Se invece opera su dati a 16 o 8 bit, non c'è questo grande vantaggio (vengono sfruttati poco).

Nelle macchime con meno bit di solito i programmi compilati sono più corti, cioè il codice è più "denso", tra l'altro perché gli indirizzi da specificare sono più corti... ma ovviamente c'è meno memoria indirizzabile. Nei 32 bit si tenta di rendere il codice più denso "condensando" più istruzioni in una (almeno le sequenze più usate).

O_/

Re: Architettura dei calcolatori

MessaggioInviato: 17 apr 2012, 11:10
da TardoFreak
Uno dei grandi vantaggi che un' architettura a 32 bit offre rispetto ad una a 8 o 16 bit, oltre che a quelli esposti in precedenza, è la possibilità di indirizzare direttamente una locazione di memoria dentro un range di 4GB.
In pratica il puntatore (o indirizzo) viene memorizzato o caricato in una sola istruzione invece che in due (nel caso di un 16 bit) o di 4 (nel caso di un 8 bit) ed occupa un unica locazione in RAM. A livello di velocità di esecuzione è un vantaggio enorme, sopratutto se consideriamo che i tagli di memoria di programma disponibili oggi e le applicazioni dei micro, molte volte superano i fatidici 64KB indirizzabili direttamente da un micro a 16 bit.
Alcuni processori come il Cortex-M3 ad esempio, hanno anche un' ottima gestione dei dati ad 8 e 16 bit che possono essere memorizzati non allineati nelle locazioni a 32 bit.

Re: Architettura dei calcolatori

MessaggioInviato: 19 apr 2012, 1:31
da pierinter
Capito, quindi in sostanza la differenza la fanno la maggior capacità di indirizzamento e quindi maggior possibilità di espansione della memoria e poi l'incremento della velocità dovuto alla minore necessità di numero di istruzioni per fare una determinata cosa.

Re: Architettura dei calcolatori

MessaggioInviato: 19 apr 2012, 2:04
da GuidoB
:ok: Esatto!

Re: Architettura dei calcolatori

MessaggioInviato: 20 apr 2012, 12:13
da AjKDAP
prova a pensare come viene gestita un'operazione del tipo:

2/34

in un micro ad 8 ed a 32bit ;-) e come viene salvato il risultato, quante cifre significative avrai, etc...

Re: Architettura dei calcolatori

MessaggioInviato: 21 apr 2012, 19:56
da pierinter
Perfettamente chiaro ! Grazie.
Una cosa non mi è molto chiara :
Il 68000 è a 16 bit giusto ?
Il che significa, credevo, che una parola è fatta da 16 bit cioè 2 byte.
Allora perché ad esempio nello stack, mi sposto di 4 in 4 ?