-
Data: 2015-11-16 22:14:18
Temat: Re: W teście szybkości iPhone6s+puszcza z dymem Galaxy Note 5
Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie 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.
Następne wpisy z tego wątku
- 16.11.15 22:36 Sebastian Biały
- 17.11.15 10:29 Marek
- 17.11.15 10:44 Marek
- 17.11.15 10:50 atm
- 17.11.15 11:02 atm
- 17.11.15 11:21 atm
- 17.11.15 11:34 atm
- 17.11.15 11:50 Marek
- 17.11.15 11:57 Marek
- 17.11.15 14:07 Pszemol
- 17.11.15 14:10 Pszemol
- 17.11.15 14:18 Pszemol
- 17.11.15 14:21 Pszemol
- 17.11.15 14:23 Pszemol
- 17.11.15 14:27 Pszemol
Najnowsze wątki z tej grupy
- Re: Tani dodatkowy sim do smartwacha
- Praktyczny test GPS...
- Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- Re: UseGalileo -- PRODUKTY I APLIKACJE UŻYWAJĄ JUŻ DZIŚ SYSTEMU GALILEO
- Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- Dlaczego sluchawka nie dzwoni?
- Google Play
- Gdzie kosz?
- Kosz, gdzie??
- GNSS Motorola G85 vs Redmi Note 9 pro
- Dlaczego nie pasuję do świata APLE?
- karta SIM nie działa w konkretnym smartfonie.
- smartfon i zewnętrzny ekran
- Gdzie w smartfonie są SMSy/MMSy ?
- VM i Fakt
Najnowsze wątki
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=
- 2024-12-02 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-02 Szczecin => Key Account Manager (ERP) <=