#008 - Zaczarowane Jabłko #2

MAR 25, 202172 MIN
Poziom niżej

#008 - Zaczarowane Jabłko #2

MAR 25, 202172 MIN

Description

W ósmym odcinku rozprawiamy się z potocznymi opiniami na temat wydajności procesora Apple M1.<br /><br />Tym razem bierzemy pod lupę konstrukcję nowego procesora M1 firmy Apple, który wywołał spore zamieszanie na rynku ultrabooków. Bazując na własnych, bogatych doświadczeniach z architekturą ARM, weryfikujemy doniesienia medialne usuwając jednocześnie kolejne zasłony dymne, które można napotkać wśród opisów "rewelacyjnych" wyników M1. Wyjaśniamy zasady budowy nowoczesnych procesorów i podajemy źródła rzetelnej wiedzy. Staramy się również odpowiedzieć na pytanie, jak rozwiązania Apple wpłyną długofalowo na cały rynek procesorów ARM, choć przewidywanie przyszłości należy do dziedziny niezupełnie inżynierskiej.<br /><br />Prowadzący: Radosław Biernacki, Maciej Czekaj, Stanisław Kardach<br /><br />Hashtag: Arm, Apple, M1<br /><br />### Plan odcinka, część #2<br /><br /># 0:23 - Translacja kodu x86 -> ARM<br /># 4:30 - Rozkazy x86 potrafią operować na pamięci (model pamięci)<br /># 8:50 - Ograniczenia translacji<br /># 10:00 - Translacja vs emulacja<br /># 11:30 - Wydajność translacji na M1<br /># 13:30 - WAŻNE: różnice modelu pamięci i wyzwania translacji!<br /># 18:00 - M1 TSO (Total Store Ordering)<br /># 23:26 - Wątek poboczny: Izolacja CPU<br /># 28:13 - koniec wątku pobocznego<br /># 28:50 - Roseta 1 i Roseta 2<br /># 30:36 - TDP i testy porównawcze<br /># 35:30 - Segmentacja rynku zastosowań procesora<br /># 37:26 - Jądro OSX<br /># 40:42 - Troche o ograniczeniach TDP<br /># 44:12 - Wydajność podsystemu DRAM o SWAP<br /># 45:22 - Podsumowanie #4 (ewolucja a nie rewolucja)<br /># 46:40 - Polityka informacyjna Apple<br /># 49:43 - wątek poboczny: Historia bywa przewrotna, Apple vs IBM, wertykalna struktura Apple<br /># 51:47 - koniec wątku pobocznego<br /># 52:55 - ARM otwiera ISA?!?<br /># 56:30 - wątek poboczny: Linux i samo-modyfikujący się kod<br /># 1:00:47 - koniec wątku pobocznego<br /># 1:01:20 - Apple AMX<br /># 1:06:30 - Czy ARM przejmie rynek PC?<br /># 1:10:35 - Zakończenie <br /><br />### Linki<br /><br /># 0:23 - Translacja X86 -> ARM:<br />- Jak robi to Apple:<br /> - Jak Transitive umarł: <a href="https://www.itjungle.com/2011/09/26/tfh092611-story06/" rel="noopener">https://www.itjungle.com/2011/09/26/tfh092611-story06/</a><br />- Jak robi to Microsoft:<br /> - Niskopoziomowa analiza: <a href="https://blogs.blackberry.com/en/2019/09/teardown-windows-10-on-arm-x86-emulation" rel="noopener">https://blogs.blackberry.com/en/2019/09/teardown-windows-10-on-arm-x86-emulation</a><br /> - Kompleksowa analiza WOW64: <a href="https://wbenny.github.io/2018/11/04/wow64-internals.html" rel="noopener">https://wbenny.github.io/2018/11/04/wow64-internals.html</a><br />- Qemu User Mode Emulation: <a href="https://qemu.readthedocs.io/en/latest/user/index.html" rel="noopener">https://qemu.readthedocs.io/en/latest/user/index.html</a><br /> - Narzędzia do skrośnego przygotowywania dystrybucji Debiana/Ubuntu: <a href="https://wiki.debian.org/EmDebian/CrossDebootstrap" rel="noopener">https://wiki.debian.org/EmDebian/CrossDebootstrap</a><br /><br /># 18:00 - TSO<br />- Slajdy poglądowe o Total Store Ordering: <a href="https://www.cis.upenn.edu/~devietti/classes/cis601-spring2016/sc_tso.pdf" rel="noopener">https://www.cis.upenn.edu/~devietti/classes/cis601-spring2016/sc_tso.pdf</a><br />- Hack do włączania dla każdego procesu w OSX na M1: <a href="https://github.com/saagarjha/TSOEnabler" rel="noopener">https://github.com/saagarjha/TSOEnabler</a><br /><br /># 25:00 - Łatki kernela do "Total CPU Isolation"<br /><a href="https://lwn.net/Articles/816298/" rel="noopener">https://lwn.net/Articles/816298/</a><br /><br /># 28:50 - Roseta1 i Roseta 2<br />- Rosetta 2: <a href="https://appleinsider.com/inside/rosetta-2" rel="noopener">https://appleinsider.com/inside/rosetta-2</a><br />- Rosetta 1 (w 2006 przy przejściu PowerPC -> Intel) będąca modyfikacją technologii QuickTransit:<br /> - <a href="https://en.wikipedia.org/wiki/QuickTransit" rel="noopener">https://en.wikipedia.org/wiki/QuickTransit</a><br /> - Prezentacja o QuickTransit na KVM Forum 2008: <a href="https://www.linux-kvm.org/images/9/98/KvmForum2008%24kdf2008_2.pdf" rel="noopener">https://www.linux-kvm.org/images/9/98/KvmForum2008%24kdf2008_2.pdf</a><br /><br /># 1:01:20 - Apple AMX<br /><a href="https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f" rel="noopener">https://gist.github.com/dougallj/7a75a3be1ec69ca550e7c36dc75e0d6f</a><br /><a href="https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/" rel="noopener">https://nod.ai/comparing-apple-m1-with-amx2-m1-with-neon/</a><br /><a href="https://medium.com/swlh/apples-m1-secret-coprocessor-6599492fc1e1" rel="noopener">https://medium.com/swlh/apples-m1-secret-coprocessor-6599492fc1e1</a>