|
Autore |
Messaggio |
opzioni |
baritonomarchetto
postato il: 26.05.2022, alle ore 16:17 |
Memorie Flash: Capacità e Address lines
Ciao a tutti,
ho una memoria flash da 1Mb (AM29F010) e vorrei sostituirla con una 29F040 da 4mb per sfruttare la maggior capacità di immagazzinamento dati.
La 29F010 ha 17 address lines (A0-A16), la 29F040, invece, ne ha 19 (A0-A18).
Quello che non capisco è: come è possibile quadruplicare la memoria con solo due address in più? Non dovrebbero essercene 3 in più?
La mia idea era di mettere un dipswitch per attivare e disattivare una address line alla volta: A16, oppure A17, oppure A18, oppure A19... che non c'è!
Cosa mi sfugge?
Grazie anticipatamente :) |
|
nautiluso
postato il: 26.05.2022, alle ore 16:40 |
Combinazioni di a17 e a18 sono 00 01 10 11, ovvero memoria quadrupla. Se avessi solo A17 sarebbe doppia |
|
baritonomarchetto
postato il: 26.05.2022, alle ore 16:43 |
Scusa, potresti spiegarmi meglio? E' la prima volta che mi cimento su questo tipo di ragionamento |
|
PVSAT
postato il: 26.05.2022, alle ore 17:02 |
Sono divise la prima in 128kb per 8 la seconda 512kb per 8 moduli entrambe lavorano al byte quindi
per la prima ci sono 2^14*8 indirizzi
per la seconda ci sono 2^16*8 indirizzi
la differenza sono 2^2
quindi ci vogliono 2 bit per indirizzarle |
|
Cactusman
postato il: 26.05.2022, alle ore 17:02 |
Voglio aiutarti però facendotici arrivare.
Per calcolare le possibilità si eleva alla potenza di N i numeri. Se non capisci neanche così mi spiego meglio :) |
|
PVSAT
postato il: 26.05.2022, alle ore 17:08 |
PVSAT: Sono divise la prima in 128kb per 8 la seconda 512kb per 8 moduli entrambe lavorano al byte quindi
per la prima ci sono 2^14*8 indirizzi
per la seconda ci sono 2^16*8 indirizzi
la differenza sono 2^2
quindi ci vogliono 2 bit per indirizzarle
2 bit per indirizzare la differenza (2^19/2^2) che è proprio 4 quindi 1M per 4 |
|
schottky
postato il: 26.05.2022, alle ore 17:16 |
comunque è semplice comunque sia realizzato ogni bit in più moltiplica per due gli indirizzi. Con n bit gli indirizzi sono 2^n
Il vantaggio di essere intelligente e' che si puo' sempre fare l'imbecille, mentre il contrario e' del tutto impossibile. -- W. Allen |
|
PVSAT
postato il: 26.05.2022, alle ore 17:21 |
schottky: comunque è semplice comunque sia realizzato ogni bit in più moltiplica per due gli indirizzi. Con n bit gli indirizzi sono 2^n
Si ho fatto tutto il ragionamento perchè voleva una spiegazione (sperando corretta), poi non è detto in questo caso si sono il doppio. |
|
baritonomarchetto
postato il: 26.05.2022, alle ore 17:51 |
Ok, grazie per le risposte.
Da un punto di vista pratico, considerato che le memorie originali hanno capacità di 1Mb e quelle che vorrei usare io 4Mb ha senso secondo voi ritenere che disattivando l'ultimo address (A16) ed attivando il successivo (A17) di fatto sto sfruttando nuove locazioni di memoria e, di fatto, sfruttando almeno 2Mb?
Se si: ha senso ritenere che disattivando A16 ed attivando A18 ho accesso ad un ulteriore mega, per un totale di 3Mb?
Io voglio rimpiazzare le memorie di un circuito pre-esistente con altre più grosse, come detto. Non vorrei però semplicemente sbattere a massa gli address non utilizzati, ma sfruttare in qualche modo la memoria addizionale.
(Grazie!) |
|
baritonomarchetto
postato il: 26.05.2022, alle ore 17:57 |
Sostanzialmente il circuito gestisce 16 address e non ho modo di modificare il firmware, ne tantomeno il circuito stesso. Nelle memorie sono salvati dei suoni (delle patch) e io vorrei, con l'uso di dip switch accedere a diverse aree con patch diverse. Mi chiedo se semplicemente switchaneo una address line io dia accesso alla CPU a locazioni di memoria completamente diverse e indipendenti.
Non so se mi spiego, portate pazienza :( |
|
|