Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata

Architettura Harvard modificata

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Architettura Harvard modificata

Messaggioda Foto Utentecyrano » 21 apr 2018, 19:33

Ciao ,

Sto cercando una conferma sull'argomento in oggetto.
Se ho capito bene nella versione modificata harvard , esiste un terzo bus che mette in comunicazione CPU con l'istruction register. Tutti i dati passanti per quel bus sono solo di lettura e possono essere trattati come dati e non come istruzioni. In questo modo possiamo salvare le costanti nella program memory e caricarle in sram solo quando serve

secondo voi è giusto?
ciao
grazie
Avatar utente
Foto Utentecyrano
15 2
 
Messaggi: 17
Iscritto il: 19 apr 2018, 22:28

2
voti

[2] Re: Architettura Harvard modificata

Messaggioda Foto Utentewruggeri » 22 apr 2018, 0:32

Un "terzo" bus? E gli altri due quali sono? :-k

Non te la prendere, ma è difficile dirti se hai espresso un concetto corretto, perché l'hai espresso malissimo... o almeno voglio sperarlo: se veramente volevi dire che la CPU deve essere connessa in qualche modo all'instruction register (che è uno dei suoi componenti fondamentali, ovvero è interno alla CPU) devi assolutamente fermarti e ripassare un po' di cose :roll:

Breve spiegazione dell'architettura Harvard: si tratta di un'architettura in cui la memoria di dati e la memoria di codice sono separate e connesse su bus diversi, sì che la CPU possa (in linea di principio) operare contemporaneamente su di esse.
Partendo da questo, sono poi state implementate varie modifiche (non per forza presenti tutte insieme sullo stesso sistema: "architettura Harvard modificata" in sè non vuol dire nulla, bisogna vedere quali sono le peculiarità implementate); una modifica molto comune (e implementata, ad esempio, in molti processori ARM) è quella che prevede un unico spazio di memoria (come nell'architettura Von Neumann) e duplica - al posto della memoria - la cache, prevedendone una per i dati e una per le istruzioni.
Un'altra modifica di cui ho notizia è quella, se non sbaglio tipica degli Atmel AVR (ma è tardi, sono stanco e non ho voglia di controllare, quindi non prendere per oro colato questo dettaglio), che implementa la possibilità per la CPU di leggere la memoria d'istruzione come fosse memoria dati. Forse tu ti riferivi a questo...
Si, nei limiti delle mie capacità ti rispondo... ma per favore, impara l'italiano!
Se non conosci un argomento, non parlarne.
Gli unici fatti scientifici sono quelli accertati dagli studi. Il resto è opinione.
Avatar utente
Foto Utentewruggeri
3.560 1 6 13
Expert EY
Expert EY
 
Messaggi: 669
Iscritto il: 25 nov 2016, 18:46

1
voti

[3] Re: Architettura Harvard modificata

Messaggioda Foto Utentecyrano » 22 apr 2018, 21:28

wruggeri ha scritto:Un "terzo" bus? E gli altri due quali sono? :-k


:D credo sia stata una mia leggerezza nel dare il significato di bus alla parola pathway.Ma infatti non ero
convinto.
Gli altri due dovrebbero essere quelli che collegano la CPU alla memoria dati o programma.

wruggeri ha scritto:Non te la prendere, ma è difficile dirti se hai espresso un concetto corretto, perché l'hai espresso malissimo... o almeno voglio sperarlo: se veramente volevi dire che la CPU deve essere connessa in qualche modo all'instruction register (che è uno dei suoi componenti fondamentali, ovvero è interno alla CPU) devi assolutamente fermarti e ripassare un po' di cose :roll:

Instruction register , Instruction pointer,Instruction decoder dovrebbero far parte della CPU ?%

wruggeri ha scritto:Un'altra modifica di cui ho notizia è quella, se non sbaglio tipica degli Atmel AVR (ma è tardi, sono stanco e non ho voglia di controllare, quindi non prendere per oro colato questo dettaglio), che implementa la possibilità per la CPU di leggere la memoria d'istruzione come fosse memoria dati. Forse tu ti riferivi a questo...

Esatto questa :)!! :ok:
Avatar utente
Foto Utentecyrano
15 2
 
Messaggi: 17
Iscritto il: 19 apr 2018, 22:28

0
voti

[4] Re: Architettura Harvard modificata

Messaggioda Foto Utentewruggeri » 22 apr 2018, 22:51

cyrano ha scritto:Instruction register , Instruction pointer,Instruction decoder dovrebbero far parte della CPU ?%


Esattamente, quindi non ci sono "pathway", "bus" o che altro a connettere la CPU con l'instruction register: esso è già al suo interno ;-)
Si, nei limiti delle mie capacità ti rispondo... ma per favore, impara l'italiano!
Se non conosci un argomento, non parlarne.
Gli unici fatti scientifici sono quelli accertati dagli studi. Il resto è opinione.
Avatar utente
Foto Utentewruggeri
3.560 1 6 13
Expert EY
Expert EY
 
Messaggi: 669
Iscritto il: 25 nov 2016, 18:46

0
voti

[5] Re: Architettura Harvard modificata

Messaggioda Foto Utentecyrano » 23 apr 2018, 21:17

Buonasera,

Vorrei ancora chiedere una conferma sull'argomento , tralasciando il termine "modificata".
Queste sono le due righe che ho scritto su come vengono processate le istruzioni ( a grandi linee..):

Processare una istruzione macchina significa che la CPU legge e decodifica ogni istruzione contenuta nella memoria programma e la esegue.Istruzione dopo istruzione.

All'interno della CPU il registro Program Counter o anche detto Instruction Pointer contiene l'indirizzo di ogni istruzione contenuta nella Program Memory,mentre l’instruction register contiene l’istruzione memorizzata per la decodifica .
La decodifica dell'istruzione avviene in tre step , Fetch-Decode-Execute :

- Fetch –> Legge l'istruzione macchina
- Decode –> Identifica il tipo di istruzione
- Execute –> Esegue l’ operazione richiesta.

Il control unit (CU) si occupa quindi di decodificare l’istruzione e generare il percorso giusto per l’esecuzione.
Generare il percorso (path) significa instradare l’istruzione verso l’hardware più indicato.
Ricordando che il circuito interno di una mcu non è altro che una rete combinatoria , mentre l'istruzione macchina è una parola binaria che identifica gli stati in ingresso a tale circuito.

Qui sotto elenchiamo ogni funzione della CU :

• Definisce il percorso per ogni singola istruzione (path)
• Richiede all’ALU una operazione aritmetica o logica
• Legge e scrive un registro di lavoro
• Passaggio da register a register ( load/store)*
• Incrementa/decrementa/carica il program counter

*Il valore letto dalla SRAM , non viene processato subito , ma copiato all'interno di un registro

Se non ho già fatto mille errori , qui mi sorge un dubbio. Anche più di uno:

Quando la CU incontra una istruzione eseguibile dalla ALU , la CU porterà in ingresso all'unità due registri.

Ma cosa succede quando abbiamo una istruzione che "sposta" una costante su un registro :
ldi r16,99
oppure una istruzione di salto , dove dovrebbe solo aggiornare il program counter ?
In teoria dovrebbe occuparsene la CU come dichiarato dall'elenco precedente

ma non sono così sicuro
Avatar utente
Foto Utentecyrano
15 2
 
Messaggi: 17
Iscritto il: 19 apr 2018, 22:28

0
voti

[6] Re: Architettura Harvard modificata

Messaggioda Foto Utentecyrano » 23 apr 2018, 22:16

cyrano ha scritto:Ma cosa succede quando abbiamo una istruzione che copia una costante in un registro :
ldi r16,99


corretto
Avatar utente
Foto Utentecyrano
15 2
 
Messaggi: 17
Iscritto il: 19 apr 2018, 22:28

0
voti

[7] Re: Architettura Harvard modificata

Messaggioda Foto Utentewruggeri » 24 apr 2018, 0:20

Hai scritto molto, e correggerti tutto (soprattutto a quest'ora...) è difficile e comunque sarebbe inadeguato farlo in un post su un forum, per cui ti scrivo giusto un paio di appunti e ti rimando ai libri di architetture elencati qui per ulteriori approfondimenti.

cyrano ha scritto:All'interno della CPU il registro Program Counter o anche detto Instruction Pointer contiene l'indirizzo di ogni istruzione contenuta nella Program Memory


No, il Program Counter contiene l'indirizzo della prossima istruzione da eseguire, il quale è determinato così:

- Se l'istruzione in esecuzione non è un salto, allora nel PC viene messo l'indirizzo immediatamente successivo al suo.
- Se l'istruzione in esecuzione è un salto, nel PC sta l'indirizzo a cui saltare.

In realtà nei sistemi contemporanei la storia è più complessa... ma idealmente dovrebbe funzionare come ti ho appena scritto.

cyrano ha scritto:La decodifica dell'istruzione avviene in tre step , Fetch-Decode-Execute :

- Fetch –> Legge l'istruzione macchina
- Decode –> Identifica il tipo di istruzione
- Execute –> Esegue l’ operazione richiesta.

In linea di principio, si... in realtà, gli stadi esecutivi possono essere più di tre (e in generale lo sono), ma in ogni caso si possono tutti ricondurre a una di quelle tre fasi che hai elencato.


cyrano ha scritto:Il control unit (CU) si occupa quindi di decodificare l’istruzione e generare il percorso giusto per l’esecuzione.
Generare il percorso (path) significa instradare l’istruzione verso l’hardware più indicato.


La control unit (è femminile!) non instrada niente: semplicemente, essa decodifica l'istruzione e genera gli opportuni segnali di controllo per far eseguire all'hardware le opportune operazioni.


Ora, stacchiamo un attimo: il tuo elenco delle "funzioni della CU" non sta né in cielo né in terra, non tanto perché sia sbagliato quanto perché continui (come hai fatto prima con la storia delle "istruzioni in viaggio") a far fare alla CU cose che non fa. Correggerti è impossibile con un post, quindi ribadisco il consiglio: leggi uno dei testi introduttivi che ci sono nella biblioteca che ti ho linkato sopra.
Ti faccio solo un piccolo esempio, giusto per farti capire:

cyrano ha scritto:Ma cosa succede quando abbiamo una istruzione che "sposta" una costante su un registro


Il codice operativo dell'istruzione contiene sia l'identificativo del registro che il valore della costante; possiamo immaginare che la CU si comporti così:

[Fetching dell'istruzione, aggiornamento del PC e tutta quella roba lì]
- Leggi l'istruzione
- Metti la costante sul bus interno (quello che connette tutti i moduli del processore)
- Attiva il segnale di load del registro (ovvero, il segnale che dice al registro "memorizza il tuo ingresso")
[...]


Spero di essere stato chiaro, e ribadisco ancora una volta il mio consiglio: prendi un buon libro di architetture e leggilo, perché mostri delle incertezze radicali e molto gravi e un forum, per quanta buona volontà io ci possa mettere, non può e mai potrà sostituire un buon libro.
Si, nei limiti delle mie capacità ti rispondo... ma per favore, impara l'italiano!
Se non conosci un argomento, non parlarne.
Gli unici fatti scientifici sono quelli accertati dagli studi. Il resto è opinione.
Avatar utente
Foto Utentewruggeri
3.560 1 6 13
Expert EY
Expert EY
 
Messaggi: 669
Iscritto il: 25 nov 2016, 18:46

0
voti

[8] Re: Architettura Harvard modificata

Messaggioda Foto Utentecyrano » 24 apr 2018, 0:40

Grazie del link Walter ne farò buon uso :cool:
Avatar utente
Foto Utentecyrano
15 2
 
Messaggi: 17
Iscritto il: 19 apr 2018, 22:28

1
voti

[9] Re: Architettura Harvard modificata

Messaggioda Foto Utentecyrano » 1 mag 2018, 17:24

wruggeri ha scritto:...prendi un buon libro di architetture e leggilo, perché mostri delle incertezze radicali e molto gravi e un forum, per quanta buona volontà io ci possa mettere, non può e mai potrà sostituire un buon libro.


Buonasera ,

Ho iniziato a leggere un libro come mi hai consigliato.
The Architecture Of Computer Hardware, Systems Software di Irv Englander
Mi si è aperto un mondo a dire poco affascinante.
Sono argomenti di studio che probabilmente affronterò più avanti.
Mi sono reso conto che quanto ho scritto è sicuramente approssimativo come la parte sulla CU.
Infatti Lei non esegue nulla e dire che esegue qualcosa è superficiale.
Solo ora leggo come i registri program counter, istruction register,memory address register,memory data register svolgono compiti bene precisi.
Vengo al punto.
L'obbiettivo iniziale era di comprendere l'hardware di un microcontrollore su architettura Harvard.
Alcuni libri sui micro, descrivono sempre la differenza tra microprocessore e microcontrollore dal punto di vista dell'archiettura Harvard vs Von Neumman e sottlineano come tutto è integrato in un chip. Ma non trovo un libro che spieghi le cose nei dettagli come quelli da te consigliati o come quello che sto leggendo.
I libri che mi hai consigliato sono sicuramente utili e probabilmente sono argomenti di studio che affronterò a breve , ma vorrei sapere se l'architettura di un calcolatore può spiegare con lo stesso dettaglio anche quello di un microcontrollore.
Il tipo di architettura di un computer dovrebbe essere diversa da quella di un microcotrollore .
Per fare un esempio , non so se nei microcontrollori esistono registri come MAR,MDR
Avatar utente
Foto Utentecyrano
15 2
 
Messaggi: 17
Iscritto il: 19 apr 2018, 22:28

1
voti

[10] Re: Architettura Harvard modificata

Messaggioda Foto Utentewruggeri » 1 mag 2018, 18:41

Il libro che citi non è uno di quelli della biblioteca, quindi non posso esprimermi sulla qualità della spiegazione... comunque, il contenuto di un testo introduttivo all'architettura dei calcolatori è fondamentale anche nel caso in cui il tuo interesse siano i microcontrollori: al netto delle differenze che ci sono, nella stragrande maggioranza dei casi la struttura di un microcontrollore differisce da quella di un microprocessore meno di quanto non si creda ;-)
Nota peraltro un dettaglio non ininfluente: i testi sui microcontrollori, i loro datasheet e i loro manuali d'uso presuppongono quasi sempre che il lettore conosca già le basi generali dell'architettura di un sistema di elaborazione, quindi non staranno lì a spiegarti ogni singolo dettaglio... e tu di dettagli invece hai tanto bisogno.
Si, nei limiti delle mie capacità ti rispondo... ma per favore, impara l'italiano!
Se non conosci un argomento, non parlarne.
Gli unici fatti scientifici sono quelli accertati dagli studi. Il resto è opinione.
Avatar utente
Foto Utentewruggeri
3.560 1 6 13
Expert EY
Expert EY
 
Messaggi: 669
Iscritto il: 25 nov 2016, 18:46

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite