annuncio

Comprimi
Ancora nessun annuncio.

32 bit vs 8 bit

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • 32 bit vs 8 bit

    Qualcuno mi puo' spiegare i vantaggi di una piattaforma a 32 bit rispatto ad una a 8 bit?
    Esistono già software che traggono effettico beneficio da questa archiettura?
    Dove sta andando la barca dei multirotori?


    Andrea

  • #2
    senza entrare nei dettagli della differenza tra 8 e 32 (accesso alla memoria, dimensione dei registri etc...) per quanto riguarda la questione specifica si tratta di differenze su cosa sta dietro ai 32bit invece degli 8.

    FIno a poco fa i controller erano implementati esclusivamente con adrduino, ossia micro atmel avr328p. Sono ottimi micro ma con evidenti limiti: 16Mhz di clock prima di tutto.

    I controller "32bit" sono prevalentemente realizzati con STM32F4 (vrbrain, px4 etc..). Questo processore arm, ha un clock a 168Mhz, un DSP (diciamo un coprocessore matematico) e in genere un'architettura a 32bit. Il tutto si traduce in molta piu' velocita' e potenza di calcolo.

    In sostanza, a parita' di software, riesce a fare piu' calcoli, quindi a valutare piu' volte al secondo l'assetto. Si possono implementare algoritmi piu' precisi (kalmann etc...). Il tutto si traduce in una maggiore stabilita'

    Commenta


    • #3
      Originariamente inviato da saveriop Visualizza il messaggio
      , riesce a fare piu' calcoli, quindi a valutare piu' volte al secondo l'assetto
      il calcolo è banale: 2^8 = 256 2^32=4.294.967.296 il risultato è pari alla dimensione della memoria che può allocare; è chiaro che la memoria deve averla. Es.: se ho un pc con processore a 32 bit, che può allocare 4 giga di memoria se ne ho montati 2 ne userà solo 2. Idem se ne ho montate 8 ne userà solo 4.

      il numero di volte che piò effettuare i calcoli è dato dalla frequenza di clock. A parità di bit se la frequenza ( n° di volte che esegue una funzione presente in un indirizzo di memoria ) è più bassa farà meno calcoli al secondo. Es.: se analizzi lo sketch Multiwii noterai che c'è una sola funzione "// ******** Main Loop *********" il processore esegue sempre questa funzione principale un un loop infinito, più e veloce il clock e più velocemente esegue tutte le procedure contenute in essa, reagendo celermente.

      Commenta


      • #4
        Grazie per le risposte. , quello che mi chiedo è : in cosa si traduce tutta questa potenza di calcolo. La stabilità di alcune piattaforme 8bit mi sembra ottima come in cosa migliora, all'atto pratico un multi 32 bit ?Funzioni aggiuntive ?

        Commenta


        • #5
          Originariamente inviato da claustro Visualizza il messaggio
          Grazie per le risposte. , quello che mi chiedo è : in cosa si traduce tutta questa potenza di calcolo. La stabilità di alcune piattaforme 8bit mi sembra ottima come in cosa migliora, all'atto pratico un multi 32 bit ?Funzioni aggiuntive ?
          No no, nessuna funzione aggiuntiva ma hai a disposizione più potenza di calcolo per il tuo codice. Poni il caso, come nell'altro post, che vuoi implementare nella tua scheda sonar di collisione, sonar di altitudine sopra e sotto, telemetria, giro, baro, Gps ecc.. l'hardware deve essere in grado di processare tutte le funzioni implementate il più brevemente possibile altrimenti si skianta tutto. Inoltre non è solo l'hardware a fare la differenza, è anche il codice che scrivi che se "scritto male" impiega troppo tempo per essere eseguito. E' un po' come costruire un multicoso; hai il meglio di motori scheda ecc.. e poi hai un frame che pesa 8 kili oppure motore/eliche sbilanciati o che so io...

          Commenta


          • #6
            E' che la sensazione che avevo io , da molto molto profano, fosse che il collo di bottiglia nell'evoluzione dei multiorotori fosse piu' nello sviluppo di codice piuttosto che nell'hardware, poi sicuramente era solo una mia impressione data dalla mancata conoscenza delle varie piattaforme esistenti.
            Grazie

            Commenta


            • #7
              Beh diciamo che multi usano ancora gli 8bit ci sono ancora, uno a caso, forse leader , va a 8 e di calcoli me fa un bel po'...Si parla di mikrokopter, sicuramente i 32 avranno maggiori potenzialità, ma bisogna vedere come e se vengono sfruttate.



              Sent from my iPhone 4S using Tapatalk

              Commenta


              • #8
                Diciamo che i quadricotteri poi diventati multirotori sono nati intorno al 2005-2006 se per nati si intende l'accesso per uso hobbystico.
                All'epoca le schede a 32 bit erano costose, inoltre AVR con i suoi atmel dominava il mercato negli 8 bit e i suoi micro erano accessibili e relativamente semplici da programmare.
                Successivamente con l'avvento di arduino e i suoi tools di sviluppo intorno al 2009-2010 sono nati i primi progetti opensource basati su arduino e atmel.
                Questi progetti opensource si sono evoluti nel tempo ma è comunque codice scritto per micro ad 8 bit con numerosi workaround e approssimazioni per il calcolo dell'assetto per mantenere veloce l'esecuzione delle routine.
                Con il recente boom dei micro a 32bit e riduzione dei costi, oggi una piattaforma a 32 bit costa come una ad 8 bit, ma per sfruttare tutta la potenza di calcolo e trarne un effettivo vantaggio bisognerebbe scrivere codice apposito e non fare il porting del codice ad 8 bit su un 32 bit come sta avvenendo sui progetti più importanti.
                Se si fa semplicemente porting, mantentendo le stesse routine di calcolo, il vantaggio del 32 bit nel comportamento di volo rispetto all' 8 bit è minimo, risiede principalmente nel fatto che sul 32 bit è possibile avere più funzioni accessorie.
                Esistono però progetti nati sul 32 bit, come l'openpilot ( e il derivato phoenixpilot ) , il paparazzi e altri progetti meno conosciuti, che sfruttano meglio la potenza del processore e delle risorse a 32 bit
                Quadricottero News
                http://www.facebook.com/Quadricottero

                Commenta


                • #9
                  Originariamente inviato da Ladware Visualizza il messaggio
                  il calcolo è banale: 2^8 = 256 2^32=4.294.967.296 il risultato è pari alla dimensione della memoria che può allocare; è chiaro che la memoria deve averla. Es.: se ho un pc con processore a 32 bit, che può allocare 4 giga di memoria se ne ho montati 2 ne userà solo 2. Idem se ne ho montate 8 ne userà solo 4.

                  il numero di volte che piò effettuare i calcoli è dato dalla frequenza di clock. A parità di bit se la frequenza ( n° di volte che esegue una funzione presente in un indirizzo di memoria ) è più bassa farà meno calcoli al secondo. Es.: se analizzi lo sketch Multiwii noterai che c'è una sola funzione "// ******** Main Loop *********" il processore esegue sempre questa funzione principale un un loop infinito, più e veloce il clock e più velocemente esegue tutte le procedure contenute in essa, reagendo celermente.
                  non ne sono pienamente sicuro....anche perchè non conosco quest'architettura,,
                  ma oltre alla frequenza non dovrebbe incidere anche l' IPC (istruzioni per ciclo)sul numero di calcoli?(sono d'accordo sullo stesso processore in linea teorica!) ma a parità di bit due processori con architettura diversa la frequenza non è l'unico parametro di cui tener conto...
                  poi ovviamente dipende dal tipo di codice...
                  32-bit? ben venga ma attualmente non era indispensabile per i multirotori

                  Commenta


                  • #10
                    Originariamente inviato da claustro Visualizza il messaggio
                    E' che la sensazione che avevo io , da molto molto profano, fosse che il collo di bottiglia nell'evoluzione dei multiorotori fosse piu' nello sviluppo di codice piuttosto che nell'hardware, poi sicuramente era solo una mia impressione data dalla mancata conoscenza delle varie piattaforme esistenti.
                    Grazie
                    ..in buona sostanza il "sistema" di controllo non è fatto solo dalla Cpu, e gli altri componenti hanno dei limiti fisici che ne limitano le prestazioni generali; tu puoi scrivere codice stra efficiente e funzionale ma un GPS per leggere la posizione ci mette il suo tempo. Un Gps Naza la legge 10 volte al sec pari a 10 Hz...un sonar al massimo 10-20 letture al sec. che te ne fai di una Cpu a 1 Ghz?

                    Commenta


                    • #11
                      Originariamente inviato da overclock Visualizza il messaggio
                      non ne sono pienamente sicuro....anche perchè non conosco quest'architettura,,
                      ma oltre alla frequenza non dovrebbe incidere anche l' IPC (istruzioni per ciclo)sul numero di calcoli?(sono d'accordo sullo stesso processore in linea teorica!) ma a parità di bit due processori con architettura diversa la frequenza non è l'unico parametro di cui tener conto...
                      poi ovviamente dipende dal tipo di codice...
                      32-bit? ben venga ma attualmente non era indispensabile per i multirotori
                      Certo che dipende dall'architettura del processore; uno Zilog Z80, il nonno degli 8086, aveva un solo registro A ( accumulatore ) per effettuare i calcoli la Cpu spostava i semi risultati nei vari registri per poi sommarne o sottrarne il risultato al successivo calcolo...erano gli anni 80 e le istruzioni per ciclo erano uguali all'uso del pallottoliere.
                      Zilog Z80 - Wikipedia

                      Commenta


                      • #12
                        Originariamente inviato da il_Zott Visualizza il messaggio
                        Beh diciamo che multi usano ancora gli 8bit ci sono ancora, uno a caso, forse leader , va a 8 e di calcoli me fa un bel po'...Si parla di mikrokopter, sicuramente i 32 avranno maggiori potenzialità, ma bisogna vedere come e se vengono sfruttate.



                        Sent from my iPhone 4S using Tapatalk
                        Ciao il_Zott,
                        guarda che Mikrokopter ha diversi processori otto bit .. uno in particolare sulla Flight control il 644P poi per esigenze di spazio portato a 1284P se non sbaglio che ha un po' piu' di flash.
                        Ma il processore principale quello per i calcoli di posizione , loiter e navigazione waypoint e' sempre strato a 32 bit se non sbaglio e' un arm 9 , vecchiotto ma pur sempre efficente forse era a 64 mhz o giu' di li . Comunque a 32 bit.

                        Naza e Wookong usano SAM3 e SAM4 ora penso quindi a32 bit

                        E' piuttosto chiaro che non ha senso rimanere a 8 bit con velocità di calcolo ridicole se a pari prezzo puoi avere dei mostriciattoli di potenza.

                        Inoltre gli 8 bit oltre a essere lenti hanno poca memoria flash e ram quindi passi piu' tempo a ottimizzare il codice perchè non ci sta' che a scriverne di nuovo ... una noia
                        saluti
                        Roberto
                        Redfox74
                        Virtual Robotix ( Arducopter DEVTEAM )
                        http://www.virtualrobotix.com
                        Canale di supporto FB
                        https://www.facebook.com/groups/1606596929592397/

                        Commenta


                        • #13
                          Originariamente inviato da redfox74 Visualizza il messaggio

                          Naza e Wookong usano SAM3 e SAM4 ora penso quindi a32 bit

                          E' piuttosto chiaro che non ha senso rimanere a 8 bit con velocità di calcolo ridicole se a pari prezzo puoi avere dei mostriciattoli di potenza.

                          Inoltre gli 8 bit oltre a essere lenti hanno poca memoria flash e ram quindi passi piu' tempo a ottimizzare il codice perchè non ci sta' che a scriverne di nuovo ... una noia
                          saluti
                          Roberto
                          Ciao Roberto, naza usa un LPC1768 a 100 Mhz che come sai è un ARM M3
                          Tra l'altro probabilmente è più potente del sam installato sul vecchio wkm.
                          Ora è uscito l' A2 successore del wkm sarebbe interessante scoprire che processore usa
                          Quadricottero News
                          http://www.facebook.com/Quadricottero

                          Commenta

                          Sto operando...
                          X