eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaZelety architektury Von Neumannna w uC ARM?
Ilość wypowiedzi w tym wątku: 21

  • 1. Data: 2009-11-07 15:54:00
    Temat: Zelety architektury Von Neumannna w uC ARM?
    Od: slawek7 <s...@w...pl>

    Cześć.
    Mam do Was prośbę. Wytłumaczcie mi coś.
    Jakie są wady i zalety architektury Von Neumanna w uC ARM np
    AT91SAM7256.
    Ostatnio słyszałem o takim stwierdzeniu że ta architektura ma same
    zalety w pracy uC a porównaniu do architektury Harwardzkiej stosowanej
    w AVR'ach.
    Nie było jednak wyjaśnienia tego.
    Możecie mi wytłumaczyć o co tu chodzi. Ja rozumiem że Von Neumanna to
    połączenie pamięcie danych i programu w jedną ciągłą ale co mi to daje
    jako programiście.
    Przecież pisząc jakiś program w C deklarujemy sobie zmienne i tak za
    bardzo nie wnikam gdzie ona jest lokowana. Mam zmienną i z niej
    korzystam.
    Może jestem trochę laikiem, ale nie za bardzo to rozumiem proszę Was o
    pomoc w ogarnięciu tego.


  • 2. Data: 2009-11-07 16:16:05
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sat, 7 Nov 2009 07:54:00 -0800 (PST), slawek7 wrote:
    >Możecie mi wytłumaczyć o co tu chodzi. Ja rozumiem że Von Neumanna to
    >połączenie pamięcie danych i programu w jedną ciągłą ale co mi to daje

    Nie musi byc ciagla. Ma byc jednolicie adresowana i dostepna.

    >jako programiście.
    >Przecież pisząc jakiś program w C deklarujemy sobie zmienne i tak za
    >bardzo nie wnikam gdzie ona jest lokowana. Mam zmienną i z niej
    >korzystam.

    Korzystasz, bo zmienna z definicji jest w pamieci danych.

    A co ze stalymi, np napisami ?
    Skad printf ma wiedziec ze podany adres odnosi sie do pamieci programu
    a nie danych ?

    W praktyce klopotow nie ma duzo .. no chyba ze przenosisz stary
    program na harwardzka architekture.


    J.



  • 3. Data: 2009-11-07 18:19:22
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: slawek7 <s...@w...pl>

    > Nie musi byc ciagla. Ma byc jednolicie adresowana i dostepna.
    >


    No tak ale co mi to daje. Jakie są z tego korzyści? Jakiś przykład, bo
    trochę tego nie rozumiem.


  • 4. Data: 2009-11-07 18:30:37
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sat, 7 Nov 2009 10:19:22 -0800 (PST), slawek7 wrote:
    >> Nie musi byc ciagla. Ma byc jednolicie adresowana i dostepna.
    >
    >No tak ale co mi to daje. Jakie są z tego korzyści? Jakiś przykład, bo
    >trochę tego nie rozumiem.

    No pisalem - skad printf ma wiedziec czy dane, ktorych adresy sa
    przekazane w parametrach, pobierac z pamieci programu czy z pamieci
    danych ?

    Inny slowy - albo wszystkie stale przepiszesz z ROM do RAM .. i
    zabraknie RAM, albo bedziesz mial kilka roznych prinft .. a takze
    kilka roznych wersji twoich wlasnych funkcji, ktore maja ten sam
    problem. A im bardziej zaglebione wywolania tym bardziej sie
    komplikuje.


    J.



  • 5. Data: 2009-11-07 18:40:08
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Waldemar Krzok <w...@z...fu-berlin.de>

    J.F. wrote:

    > On Sat, 7 Nov 2009 10:19:22 -0800 (PST), slawek7 wrote:
    >>> Nie musi byc ciagla. Ma byc jednolicie adresowana i dostepna.
    >>
    >>No tak ale co mi to daje. Jakie są z tego korzyści? Jakiś przykład, bo
    >>trochę tego nie rozumiem.
    >
    > No pisalem - skad printf ma wiedziec czy dane, ktorych adresy sa
    > przekazane w parametrach, pobierac z pamieci programu czy z pamieci
    > danych ?
    >
    > Inny slowy - albo wszystkie stale przepiszesz z ROM do RAM .. i
    > zabraknie RAM, albo bedziesz mial kilka roznych prinft .. a takze
    > kilka roznych wersji twoich wlasnych funkcji, ktore maja ten sam
    > problem. A im bardziej zaglebione wywolania tym bardziej sie
    > komplikuje.

    troche mieszasz, a nawet bardziej niz troche. TY nie musisz nic robic, to ma
    zrobic kompilator, chyba, ze to ty piszesz kompilator. W architekturze
    v.Neumanna tez masz np. segmentacje i problemy gdzie sa stale, gdzie
    zmienne lokalne, a gdzie globalne. Architektura Harvard w ogolnosci pozwala
    na szybsze przetwarzanie, bo magistrale danych i programu sa rozdzielone.
    Architektura v.Neumanna pozwala na uproszczenie kompilatorow dzieki
    wykorzystaniu ortogonalnosci. Oprocz tego latwiej jest pisanie programow AI
    wykorzystujacych programy samoadaptacyjne (np. lisp), ale to tylko takie
    male duperele. Glowna zaleta v.N. jest prostsza architektura, lepiej
    wykorzystujaca zasoby, H. jest bardziej skomplikowana, ale teoretycznie
    szybsza.

    Waldek


  • 6. Data: 2009-11-07 19:05:25
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: J.F. <j...@p...onet.pl>

    On Sat, 07 Nov 2009 19:40:08 +0100, Waldemar Krzok wrote:
    >J.F. wrote:
    >> Inny slowy - albo wszystkie stale przepiszesz z ROM do RAM .. i
    >> zabraknie RAM, albo bedziesz mial kilka roznych prinft .. a takze
    >> kilka roznych wersji twoich wlasnych funkcji, ktore maja ten sam
    >> problem. A im bardziej zaglebione wywolania tym bardziej sie
    >> komplikuje.
    >
    >troche mieszasz, a nawet bardziej niz troche. TY nie musisz nic robic, to ma
    >zrobic kompilator, chyba, ze to ty piszesz kompilator.

    Mozna. Tak robil bodajze Keil na '51.
    Efekt - przydaje w 1% programu, a wydajnosc spada w calym.

    W sumie masz racje - to nie zalezy od architektury magistral, tylko od
    realizacji dostepu - identyczny czy rozny.

    >W architekturze
    >v.Neumanna tez masz np. segmentacje i problemy gdzie sa stale, gdzie
    >zmienne lokalne, a gdzie globalne.

    Tylko pytanie czy z punktu widzenia programu dostep jest inny, czy sa
    tylko drobne klopoty, typu 6 modeli pamieciowych C na 8086.

    >Architektura Harvard w ogolnosci pozwala
    >na szybsze przetwarzanie, bo magistrale danych i programu sa rozdzielone.

    Jesli chodzi o hardware ... to sie ostatnio skomplikowalo i rozmylo.

    J.


  • 7. Data: 2009-11-07 19:09:02
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Artur Lipowski <l...@p...onet.pl>

    On 07.11.2009 16:54, slawek7 wrote:
    > Cześć.
    > Mam do Was prośbę. Wytłumaczcie mi coś.
    > Jakie są wady i zalety architektury Von Neumanna w uC ARM np
    > AT91SAM7256.
    > Ostatnio słyszałem o takim stwierdzeniu że ta architektura ma same
    > zalety w pracy uC a porównaniu do architektury Harwardzkiej stosowanej
    > w AVR'ach.
    ...
    Akurat tak się składa, że ani ten ARM ani AVR-y nie są klasycznymi przykładami
    ww architektur. Dodatkowo są to zupełnie różne klasy procesorów, więc ich
    porównywanie, i to w kontekście architektury, ma niezbyt duży sens.
    Za to porównywanie z punktu widzenia programisty (C) jest IMHO całkiem ciekawe.

    "Prawdziwa" architektura typu Harvard umożliwia jednoczesny dostęp do danych i
    programu (ze względu na w pełni rozdzielone magistrale). Pozwala to lepiej
    wykorzystać cykle procesora - w tym samym czasie można pobierać dane do
    aktualnego rozkazu i następny rozkaz. Oczywiście, aby takie możliwości w pełni
    wykorzystać procesor musi mieć odpowiednio "sprytny" zestaw rokazów, jednostkę
    wykonawczą z potokiem (pipeline) i kompilator, który wygeneruje odpowiedni kod.

    Architektura von Neumann-a pozwala w założeniu na budowę prostszych procesorów
    (tylko jedna magistrala). Jednak obserwując ostanie trendy np. w x86, to ta
    "prostota" gdzieś wyparowała i mamy skompliwany procek, z taką sobie wydajnością
    (przeliczniki typu liczba operacji/wat lub liczba watów na MHz są raczej kiepskie).

    Wydaje się, że w embedded nowsze rozwiązania idą raczej w stronę architektury
    typu Harvard np. Cortex, MIPS, procesory DSP.


    Pozdrawiam,
    --
    Artur Lipowski


  • 8. Data: 2009-11-07 19:09:49
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: slawek7 <s...@w...pl>

    To jakie są te chwalone zalety pisania programów na ARM w
    architekturze v. Neumanna?
    Przecież tak samo mogę to napisać w AVR. To kompilator dba gdzie
    umieszcza zmienne a ja je tylko deklaruje. wiec o czym mowa w tych
    zaletach?


  • 9. Data: 2009-11-07 19:39:01
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Sebastian Biały <h...@p...onet.pl>

    slawek7 wrote:
    > Mam do Was prośbę. Wytłumaczcie mi coś.
    > Jakie są wady i zalety architektury Von Neumanna w uC ARM np
    > AT91SAM7256.

    VN:

    a) możliwość wykonywania kodu z RAM, samomodyfikujący sie kod (np
    dynamiczne ladowanie kodu z karty SD itd).

    b) brak osobnych instrukcji dostepu do różnych obszarow pamięci i I/O -
    tak są skonstruowane współczesne kompilatory jak gcc.

    c) w kodzie char* p = "fff" oznacza to samo bez wzgledu na to gdzie
    fizycznie jest "fff", ten sam kod będzie wysysal dane z RAM i FLASH.

    d) możliwośc tworzenia pamięci wirtualnej w standardowy sposób (bo można
    wykonywac kod w ram).

    H:

    a) podobno latwiej się implementuje więc tańsze chipy

    b) szybsze, bo można w jednym cyklu mieć dwa różne elementy (opcode +
    dana z ram).

    c) dziwaczne kompilatory i/lub workaroundy na istniejace kompilatory

    d) przeginanie niektórych w kierunku wesołych koncepcji jak sprzetowe
    stosy itp co uniemożliwia pracę wielu kompilatorów i w ogóle koncepcji
    (preemptive multitasking na PICach nie jest chyba możliwy).

    > Przecież pisząc jakiś program w C deklarujemy sobie zmienne i tak za
    > bardzo nie wnikam gdzie ona jest lokowana. Mam zmienną i z niej
    > korzystam.

    Niestety nie. Kompilatory C powstawaly w czasach gdy nie bylo do końca
    jasne jak odróżnić różne rodzaje pamięci i czy to w ogole potrzebne.
    Efektem czego co kompilator na embedded to wlasne koncepcje jak okreslić
    "ten string ma być we Flash, a ten w RAM". Mamy więc mase workaroundów na C.

    Duże systemy najczęściej są VN, małe H. Ale cieżko pokazać taką granicę.
    Sam widzisz ze mały ARM7 jest VN.


  • 10. Data: 2009-11-07 19:58:59
    Temat: Re: Zelety architektury Von Neumannna w uC ARM?
    Od: Name <u...@e...org>

    slawek7 wrote:
    > To jakie są te chwalone zalety pisania programów na ARM w
    > architekturze v. Neumanna?
    > Przecież tak samo mogę to napisać w AVR. To kompilator dba gdzie
    > umieszcza zmienne a ja je tylko deklaruje. wiec o czym mowa w tych
    > zaletach?

    W AVR i np. PIC 8-bit są 2 fizyczne i logiczne przestrzenie adresowe
    (mogą być pod tym samym adresem startowym): RAM i ROM. Żeby np.
    skopiować 1 bajt do rejestru ALU trzeba użyć innych instrukcji asemblera
    (w C może to być niewidoczne) dla RAM i innych dla ROM. W ARM jest bez
    różnicy bo pamięci są zunifikowane w jedną przestrzeń logiczną.

strony : [ 1 ] . 2 . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: