|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#61 | |||||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Un altro vantaggio, rispetto a 68000 e x86, è che dalla decodifica dell'opcode a 32 bit (quello a 16 bit si può sempre vedere come uno a 32 bit, come detto prima) si conosce immediatamente la lunghezza dell'intera istruzione. Comunque vorrei, sempre per agevolare il decoder, mettere un vincolo alla lunghezza massima di un'istruzione imponendo un massimo di 16 byte (8 word a 16 bit). Attualmente il massimo che si può avere è: opcode a 32 bit + valore immediato a 64 bit + indirizzo assoluto a 64 bit. Non penso che sia una restrizione così grave, perché i casi di istruzioni così lunghe non sono frequenti. Quote:
Un altro elemento di netta discriminazione è la presenza delle sole istruzioni di LOAD / STORE per interfacciarsi con la memoria, mentre i CISC permettono di avere istruzioni più complesse (aritmentiche, logiche, ecc.) che possono andare al contempo a leggere / scrivere dalla memoria. Quote:
Comunque col tuo schema si può effettivamente ricavare la maschera degli IF con pochi gate. Quote:
Quote:
Quote:
Io con 3 soli bit per i registri ho già la tabella quasi completamente satura (c'è giusto spazio per una decina di istruzioni non dotate di campi). Quote:
Comunque le istruzioni jump hanno tutte una sorgente, ma nessuna destinazione. Nella letteratura Motorola serve a distinguere in che modo interpretare la modalità d'indirizzamento. Questo perché per la "sorgente" si può sfruttare qualunque modalità, mentre per quella destinazione viene sollevata un'eccezione in presenza di indirizzamento immediato oppure di uno che utilizzi il PC come registro indirizzo. Quote:
Quote:
Inoltre penso a una versione "quick" del confronto + salto, con un valore immediato "corto" (similmente a QCMP, che accetta costanti da -1 a 2). Questo sempre per includere dei casi comuni e che possono mettere in crisi la pipeline (se un'istruzione deve dipendere dall'analisi dei flag generati da un'altra).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||||||||
|
|
|
|
|
#62 | |||||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Quote:
Quote:
Il problema è che devo aggiungere logica aggiuntiva per poter eseguire salti condizionati all'interno del microcodice stesso, troppa roba per solo 2 istruzioni; molto meglio creare una unità apposita. Quote:
Nel senso che hai CMP.Size Source EA, Dn e CMP.Size Dn, Destination EA, non basterebbe solo la seconda? Quote:
Cmq, pensavo: ha senso avere l' estensione per le modalità di indirizzamento più complesse? Praticamente l'opcode a 16 bit diventa a 32. Non sarebbe meglio integrare queste istruzioni nella tabella a 32 bit? |
|||||
|
|
|
|
|
#64 | ||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
Il copia & incolla è la principale fonte di bug. La seconda è il sonno. La combinazione dei due, poi, è micidiale. Grazie per la segnalazione. A questo punto utilizzo lo spazio della seconda CMP per mappare qui la QMOVEU (così ho una costante a 8 bit a disposizione). Mentre marco come riservato il precedente spazio della QMOVEU, che a questo punto può benissimo mappare un'istruzione tipo la LEA, cioé con un registro e una modalità d'indirizzamento. Ottimo. Lo spazio nella tabella degli opcode a 16 bit è preziosissimo. Quote:
Quote:
Inoltre gli opcode a 32 bit hanno modalità d'indirizzamento con estensione a 32 bit (quelle con offset da 23 bit). Per cui in ogni caso non ci rientreremmo. @Tommo: grazie.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||||
|
|
|
|
|
#65 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 1426
|
@Z80Fan: tu non fai ancora l'università giusto? quindi tutte queste cose come le hai imparate?
|
|
|
|
|
|
#66 | |||||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Quote:
Quote:
Quote:
Quote:
![]() Penso attraverso internet, visto che non ho libri che trattano questo argomento, e poi tramite inventiva personale |
|||||
|
|
|
|
|
#67 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
A me piacerebbe dormire un po' di più.
![]() Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||
|
|
|
|
|
#68 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ora cdimauro mi fucilerà, ma da un punto di vista implementativo un'architettura RISC non sarebbe stata più adatta allo scopo di questo thread ?
Prima di tutto perché la progettazione dell'ISA è più semplice, poi perché ci si può sbizzarrire sulla progettazione delle pipeline senza dover progettare prima unità di decodifica veramente complesse. |
|
|
|
|
|
#69 | |||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Quote:
Quote:
|
|||
|
|
|
|
|
#70 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Comunque l'n-esimo progetto di CPU RISC non mi esalta. Le architetture a opcode fissi sono troppo limitate e uccidono la creatività. Alla fine si arriva a definire architetture abbastanza simili ad altre, che fanno più o meno le stesse cose. Coi CISC (o, al limite, i CRISP), invece, uno può tirare fuori la propria immaginazione, la creatività che è tipica dei programmatori. Quote:
Perfino i RISC più moderni hanno la possibilità di utilizzare un registro base, uno indice scalato, a cui viene aggiunto anche un offset. Gli ARM e PowerPC, tra l'altro, hanno anche la possibilità di aggiornare il contenuto del registro base col calcolo dell'indirizzo effettuato (quindi ben più complesso di roba come An+ o -An). Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
|
|
|
|
|
#71 | ||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Quote:
|
||
|
|
|
|
|
#72 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
At the time of introduction, RISC and "load-store" were often synonymous, but RISC usually referred to a list of features:
Quindi... CISC rulez.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
|
|
|
|
|
#73 | ||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Quote:
Quindi, per controprova, oltre a un Risc con opcode a lunghezza variabile ti progetto anche un cisc con opcode a lunghezza fissa! |
||
|
|
|
|
|
#74 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
|
|
|
|
|
|
#75 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Tu, invece, sei costretto a usare (quindi più spazio) ed eseguire (prestazioni più scarse) un'istruzione in più. Quanto meno dal punto di vista della compattezza del codice, i CISC vincono a mani basse. Per le prestazioni, ormai che viaggiamo sui miliardi di transistor, un'unità di decodifica non è un problema né di costi né di consumi. Quote:
P.S. Adesso vado a nanna però, che stanotte ho dormito pochissimo a causa del piccolo. Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
|
|
|
|
|
#76 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
|
|
|
|
|
|
#77 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Mi sembra ancora presto per parlarne. Intanto definiamo l'ISA, e poi vediamo come implementarla e le soluzioni che sono presenti in letteratura per risolvere questi problemi.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#78 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#79 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Il bello verrà dopo, con gli opcode a 32 bit.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#80 | |||||
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Quote:
Codice:
MOV.L [A1, D3.Q*4, 2], D0 QADD.Q 1, D3 Codice:
MOV.L [R9 + R3], R0 QADD.Q 6, R3 Quote:
Quote:
Quote:
Quote:
Ora che ci penso, dove è finito MaxArt? E' scappato via urlando dopo aver visto il set istruzioni? Ultima modifica di Z80Fan : 24-06-2010 alle 13:47. |
|||||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:41.











), solo estendendo i campi registro ad un bit in più, in modo da eliminare la distinzione D/A



Il copia & incolla è la principale fonte di bug. La seconda è il sonno. La combinazione dei due, poi, è micidiale.








