eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.telefonia.gsmW teście szybkości iPhone6s+puszcza z dymem Galaxy Note 5Re: W teście szybkości iPhone6s+puszcza z dymem Galaxy Note 5
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
    OSTED!not-for-mail
    From: Sebastian Biały <h...@p...onet.pl>
    Newsgroups: pl.misc.telefonia.gsm
    Subject: Re: W teście szybkości iPhone6s+puszcza z dymem Galaxy Note 5
    Date: Mon, 16 Nov 2015 22:14:18 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 94
    Message-ID: <n2dh03$of8$1@node1.news.atman.pl>
    References: <n27hfb$rlr$1@dont-email.me> <n27jer$old$1@node2.news.atman.pl>
    <X...@1...0.0.1>
    <n27qgt$rk$1@dont-email.me> <n27s62$14m$1@node2.news.atman.pl>
    <n27sgj$9ca$1@dont-email.me> <n27tkq$2mq$1@node2.news.atman.pl>
    <a...@n...neostrada.pl>
    <n29if0$ihn$2@node2.news.atman.pl> <n29uql$hsj$1@dont-email.me>
    <n2a15q$17n$1@node2.news.atman.pl>
    <a...@n...neostrada.pl>
    <n2a5mc$5i0$1@node2.news.atman.pl>
    <1t0380f7adygx$.mhqilt61aps8$.dlg@40tude.net>
    <n2d563$2aa$1@node2.news.atman.pl>
    <564a330f$0$701$65785112@news.neostrada.pl>
    <n2dcv5$k5r$1@node1.news.atman.pl>
    <564a4143$0$646$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 176-115-85-233.via.zamek.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=iso-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1447708483 25064 176.115.85.233 (16 Nov 2015 21:14:43
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Mon, 16 Nov 2015 21:14:43 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
    In-Reply-To: <564a4143$0$646$65785112@news.neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.misc.telefonia.gsm:1073543
    [ ukryj nagłówki ]

    On 2015-11-16 21:48, J.F. wrote:
    >> CPU do telefonów potrafi zrobić Apple. Jaki problem dodać dowolny
    >> hardware?
    > Zaden, ale jesli (nie wiem) telefon sie dalo zrobic bez, to moze nie ma
    > potrzeby dokladac :-)

    Dalo się zrobić bez ale ma kłopoty funkcjonalne z update. Jesli istniał
    by motywator ekonomiczny to wszystko jest możliwe. Ale nie ma.

    >> pomiędzy hardware i cpu. Uzycie IOMMU i MMU pozwala widzieć pamięć gfx
    >> czy czegotam chcesz bez żadnych "uprawnień kernela".
    > Tak, ale to bedzie np pamiec video. Czy pamiec obiektow graficznych do
    > wykorzystania.
    > A sterowac tym gfx trzeba przez inne rejestry - tak, zeby wiedzial ze
    > zostalo do nich zapisane, bo przeciez nie bedzie stale zawartosci
    > pamieci sprawdzal.

    Te rejstry leżą obok w pamięci od 0x400000 w górę. W czym problem?

    > A w tym IOMMU nie pomoze. Chyba, ze jakos sprytnie w dwie strony bedzie
    > dzialalo.

    IOMMU pozwala na dowolne machloje głównie dlatego że powstalo do duzych
    systemów. Do systemów małych, szczególnie typu SoC mozna wprost
    zaprojektować hardware tak aby załatwiało to w całości MMU. Nie widze
    żadnych przeszkód aby IOMMU w SoC nie istniało a system dalej mapowal
    wszelkie rejestry i pamięc jakiegoś hardware w dowolne miejsce dowolnego
    procesu.

    > Mozliwe, tym niemniej switch sie wydluza, jak trzeba zachowac rejestry
    > (a przybywa ich), przestawic MMU, byc moze przestawic IOMMU itd.

    I tutaj bingo: im mniejszy driver tym mniej do przestawiania w MMU. To
    kwestia napisania tak kernela aby switch kontekstu do drivera dzwięku
    był minimalistyczny. Kilka stron z rejestrami hardware, troszkę
    sharowanej pamięci i do widzenia. Tak, cache pewnie się z lekka
    uszkodzi, ale te kilkaset instrukcji sterownika to raczej duzych szkod
    nie poczyni.

    Ponadto jak mówie - CPU pożerają głównie aplikacje z userlandu. Drivery
    nic nie robią bo czekają na przerwanie albo nikt ich nie chce w tej chwili.

    >>> Ale mi chodzi o to, czy Dalvik w ogole przewiduje operacje np "zapisz
    >>> pod adres C2000000 w pamieci".
    >> Nie musi. Wystarczy że może (a musi) wołać metody natywne. I wtedy w
    >> javie widzisz os.raw.memory.write( address, value ) czy coś w ten deseń.
    > i wydajnosc dalej spada :-)

    Nie, ponieważ JIT kompiluje to do natywnego mov. To że coś w javie ma
    skomplikowany zapis nie oznacza że po translacji do kodu maszynowego
    dalej ma skomplikowany zapis.

    > No wlasnie o to chodzi - albo z poziomu kodu Dalvika musze miec dostep
    > do tego umowionego adresu w pamieci procesora, albo kernel musi wiedziec
    > jak mapowac aby ten dalvikowy kod dobrze trafial .

    Żaden problem. To dość proste zagadnienie.

    >>> Jeszcze jakies inne rozkazy zostaja, typu np zablokowanie przerwan,
    >>> sterowanie nimi, operacje atomowe itp.
    >> To wszystko to są trywializmy. Przecież nikt nie mówi że API/ABI
    > Oczywiscie, ale moge wymagac wiekszych uprawnien.

    Te uprawnienia ma proces drivera nadane przez kernel. W czym problem?

    Na marginesie: wszelkie problemy z MMU i IOMMU tak naprawdę występują
    rowniez w kernelu. To jest *dokładnie* to samo zagadnienie. Ja tylko
    mówie że nie ma problemu aby przenieść drivery razem z ich hardware do
    osobnych procesów. Nawet jesli to będzie kosztowac całe 0.1%[*] czasu
    CPU na machanie MMU. A przeniesienie do osobnych procesów - żeby nie
    zgubić o co w tej dyskusji chodzi - ma za zadanie umożliwić ich
    aktualizację bez względu na dziadostwo prezentowane przez wytwórców
    telefonów.

    >> sterownika zaczyna się od main(argc,argv). naprawde, nie ma roznicy
    >> czy porty hardware smerane sa przez kod maszynowy czy przez ten sam
    >> kod maszynowy wygenerowany z dalvika.
    > Ale sam dalvik moze nie przewidywac np operacji atomowych, bo i po co to
    > na poziomie abstrakcji Javy.

    Ale nie musi na poziomie Javy. Wystarczy że na poziomie fake "pakietu"
    os.driver.* znajdzie się zbiór metod "writeAtomic64BitLongInteger( ptr,
    value ); itd. ktore translują się wprost do czego tam na aktualnej arch
    trzeba. Atomowośc jakiejś operacji jest okreslana przez sterownik. Tak,
    to oznacza że kod sterownika jest pisany głównie z użyciem wywołań do
    jakiegoś os.driver i nie wygląda ładnie. Ale mało ktory sterownik
    wygląda ładnie.

    [*] Jest kilka prac z tej dziedziny, np:
    http://choices.cs.illinois.edu/ExpCS07.pdf

    PS. Nie na darmo współczesne CPU mają kilka rdzeni - to powoduje że nie
    trzeba robić switcha kontekstu za każdym razem kiedy wołasz driver.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: