-
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
- Przenoszenie przez wifi na nowego Androida
- Gemini
- roaming
- Orange Free na kartę - coś się popsuło
- Radio internetowe do starego Androida
- Nazbyt "muzyczne" słuchawki
- 5G Apokalipsa - nie tylko dla tutejszych przeżuwaczy podpiczników
- Power BANK z ładowaniem przelotowym robi PRZERWY
- Aero2
- odbiornik GPS z kablem USB
- iOS, działające wifi z autolockiem
- Z instrukcji do kitu
- Re: W telefonie brak szufladki na drugą kartę SIM
- W telefonie brak szufladki na drugą kartę SIM
- DNS restrictions are on
Najnowsze wątki
- 2025-03-23 Waga z legalizacją
- 2025-03-23 Nowy VW 208 :-)
- 2025-03-23 ile Tesla ma gwarancji?
- 2025-03-22 OT Silnik sie przegrzewa
- 2025-03-22 Przenoszenie przez wifi na nowego Androida
- 2025-03-22 Warszawa => Senior Account Manager <=
- 2025-03-22 Wrocław => Konsultant wdrożeniowy Comarch XL (Logistyka, WMS, Produk
- 2025-03-22 Warszawa => Spedytor Międzynarodowy <=
- 2025-03-22 Warszawa => NMS System Administrator <=
- 2025-03-22 Warszawa => Analityk IT (projekty z obszaru telco) <=
- 2025-03-22 Orzeczenie TSUE
- 2025-03-22 Warszawa => Operations Support Systems (OSS) Team Leader <=
- 2025-03-22 Warszawa => Scrum Master <=
- 2025-03-22 Warszawa => Senior Account Manager <=
- 2025-03-22 Warszawa => BI Developer / Analityk BI <=