Nokia N810 Internet Tablet

Nasze przygody z N810

listopada-22-2009

Serce n900 czyli co tam naprawdę siedzi

Procesor w N900 to nie byle co. Setki notek prasowych i publikowane dane techniczne dość lakonicznie traktują sprawę procesora, tymczasem to, co jest w sercu tego telefonu to „kawał” niezłego krzemu. Chciałbym, choć trochę przybliżyć temat „serca” N900.

Historia

OMAP-3430 został zamówiony przez Nokię jako procesor który miał „zaćmić wszystkie inne”. Tak to ogólnie zostało postawione przez marketing Nokii w 2004 roku. Potem inżynierowie przerobili to na konkrety. Początkowo jako OMAP-25xx potem OMAP-3430 był nie co bardziej rozbudowany jak to co w ostateczności powstało. Przyjęte założenia na początku zakładały 800MHz dla ARM’a i DSP (znane tu jako IVA). Stopniowo w miarę postępu projektu częstotliwość była obniżana aż doszło do 600MHz (choć było jakiś czas poniżej 500MHz). Należy wspomnieć o ważnej rzeczy, a mianowicie maksymalna częstotliwość pracy procesorów ograniczona jest jedynie poborem mocy. Procesor ARM’a bez problemu pracuje nawet na 1100MHz przy odpowiednio doregulowanym napięciu. tyle, że za dużo wtedy zabiera energii; dużo za dużo. OMAP3430 to pierwsza w świecie implementacja Cortex’a-A8 który powstawał wraz z OMAP’em-3430.

Pierwszy „silicon” powstał we wrześniu 2006 roku. Był nad wyraz udany, co zaskoczyło wszystkich. W porównaniu z poprzednimi OMAP’ami prawie wszystko działało, no i pracował na 1GHz bez kłopotów. Jak wiemy „prawie” robi różnice wiec szybko powstawały kolejne wersje.

Garść technicznych ciekawostek

OMAP-3430 wykonany jest w technologii 65nm. W takiej litografii nie lada wyzwaniem jest upływ energii przez bardzo cienkie warstwy izolacyjne. Dlatego też postawiono na technologie w pełni dynamicznej kontroli nad częstotliwością i napięciami. W procesorze są cztery źródła częstotliwości („Digital Phase Locked Loop” DPLL). ARM, IVA i inne ważne moduły jak akceleracja 2D/3D czy akcelerator wyświetlacza mają niezależne źródła zegara.

Do tego jest kilka systemów zasilań. Ideą jest jednoczesna i dynamiczna kontrola nad częstotliwością i napięciem dostosowująca wydajność do zapotrzebowania w danej chwili każdej funkcjonalnej części. Co jest nie potrzebne jest wyłączone bądź uśpione. Tzw. „Power Management” zastosowany w tym procesorze jest bardzo nowatorski i nosi nazwę „SmartReflex”. Dynamiczna kontrola napięcia wymagała specjalnej logiki łączącej przenoszącej sygnały pomiędzy wyspami napięć („Volatge Domains”) które mogą mieć różne napięcia bądź są całkiem wyłączone.

Prosty aplet na N8xx pokazywał częstotliwość pracy OMAP’a 2420 która przyjmowała dwie wartości 190 i 380MHz, to dlatego, że procesor był połączony synchronicznym mostkiem z magistralą i mógł mieć częstotliwość będącą pełną wielokrotnością. W OMAP3430 mostki od ARM’a i IVA są asynchroniczne. Tak, więc częstotliwości procesorów mogą się zmieniać niemalże płynnie. Raj dla miłośników pokręcania.

„Secure” czyli bezpiecznie

Również w tym obszarze, OMAP-3430 jest absolutnie pionierski. Począwszy od OMAP’a-1610 TI bardzo duży nacisk kładł na „security” silnie wspomagane przez sprzęt. Potrzeba tak silnego i pewnego mechanizmu zabezpieczeń bierze się z Digital Rights Management (DRM) oraz z chęci dokonywania transakcji płatniczych. Poprzednie OMAP’y zaopatrzone były w wspomaganie sprzętowe zrealizowane, jako zewnętrzny moduł śledzący to, co robi ARM korzystający z „debugowych” końcówek rdzenia. Wraz ze sprzętem, „security” wspomagane było przez specjalny kawałek kodu w ROM’ie który tworzył sztucznie, bezpieczny tryb procesora.

ARM wykorzystał doświadczenia TI i zintegrował specjalny tryb pracy w swoim rdzeniu. Technologia nazywa się „TrustZone”. Cortex-A8, potrafi wykonywać instrukcje w specjalnym trybie „secure mode” dając dostęp do zasobów normalnie nie dostępnych takich jak specjalna pamięć czy moduły kryptograficzne. Wraz z kodem w ROM’ie rozwiązanie to tworzy niespotykany dotąd poziom zabezpieczeń i środowisko do uruchamiania „secure applications” czyli certyfikowanych bezpiecznych aplikacji.

Niestety, a w zasadzie „stety”, w tabletach N8x0 stosowana była wersja procesora „General Purpose” (GP) czyli z wyłącznym „secure mode”. Myślę, że w N900 jest również procesor GP, inaczej pisanie otwartego systemu operacyjnego mogłoby być nie możliwe.

Wydajność w rzeczywistości

Ilekroć jest mowa o megahercach, jestem trochę poirytowany. Wiem, ze dla przeciętnego użytkownika to najprostszy sposób na porównanie wydajności. Tyle, że częstotliwość w zasadzie nie wiele znaczy.

Po pierwsze, rozpatrywanie samego rdzenia ARM’a w oderwaniu od całej reszty jest zupełnie bez sensu. Bo przecież, wydajność to głównie szyna łącząca moduły, to prędkość pamięci RAM, to wydajność systemowego DMA, to wszystkie wspomagające peryferia. W OMAP’ie 3430 mamy potężne mechanizmy wspomagające grafikę i wyświetlacz. Dla przykładu, obraz z kamery może być bezpośrednio przekazany w dowolny obszar wyświetlacza przeskalowany i obrócony bez udziału ani ARM’a ani IVA’y! Jeżeli odtwarzamy film, to DMA przerzuca dane z karty do IVA i a potem zdekodowane ramki od razu na wyświetlacz, ARM sporadycznie tylko zarządza kartą i DMA. Coretex A8 też może być inny w innym procesorze. Kiedy konfiguruje się ARM’a w danym chipie ustawiane są setki parametrów wpływające na wydajność.

W OMAP3430 mamy pierwszy wbudowany rdzeń z „cache” drugiego poziomu! Jest go 256kB. Kto pamięta czasy PC-386/PC-486 wie jak wiele zależało od tego czy wsadzone są w płytę kostki pamięci „cache”. Oczywiście jest też „cache” pierwszego poziomu, po 32kB (jeden na szynie danych i jeden na szynie rozkazów).

No, jeśli dodamy do tego oprogramowanie, to w zasadzie tylko porządne, zestandaryzowane testy będą mogły powiedzieć czy N900 jest wydajniejszy od jakiegoś tam innego czegoś. Nie żadne megaherce. A najwięcej to pewnie będą mogli powiedzieć sami użytkownicy. N8x0 chodziło całkiem żwawo, więc coś, co jest mniej więcej 10 razy bardziej wydajne powinno zrobić wrażenie.

Liczy się też wygląd zewnętrzny

Foto 1 pokazuje jak wygląda goły procesor. Goły, bo wokół płyteczki silikonu widzimy pola lutownicze, do których przylutowana będzie pamięć flash+RAM w jednej obudowie. Taka „kanapka” oszczędza mnóstwo miejsca.

Jak ktoś będzie miał okazje oglądać wnętrze N900 niech nie szuka OMAP’a tylko kostki 12x12mm oznaczonej przez producenta pamięci. Foto 2 pokazuje jak cienki jest silikon, jak kartka papieru. OMAP-3430 to tzw. „Flip-Chip”, silikon nie jest „bondowany” drucikami tylko odwrócony i przyklejony do „back-plane” czyli małej płytki drukowanej stanowiącej podstawę kości. Foto 3 pokazuje nasz procesor od dołu, dla porównania OMAP-2420.

Mam nadzieje, że choć trochę pokazałem jak niesamowitym może być procesor, o którym istnieniu wielu użytkowników nawet nie myśli. To tylko parę zdań, o procesorze, którego stworzenie pochłonęło ponad 100 milionów dolarów i o którym można by napisać książkę.

© 2009 pocoryk (maupa) o2.pl

Wszelkie prawa zastrzeżone. Kopiowanie całości bądź fragmentów bez zgody autora zabronione.

Procesor w N900 to nie byle, co. Setki notek prasowych i publikowane dane techniczne dość lakonicznie traktują sprawę procesora, tymczasem to, co jest w sercu tego telefonu to „kawał” niezłego krzemu. Chciałbym, choć trochę przybliżyć temat „serca” N900.

Historia

OMAP-3430 został zamówiony przez Nokie jako procesor który miał „zaćmić wszystkie inne”. Tak to ogólnie zostało postawione przez marketing Nokii w 2004 roku. Potem inżynierowie przerobili to na konkrety. Początkowo jako OMAP-25xx potem OMAP-3430 był nie co bardziej rozbudowany jak to co w ostateczności powstało. Przyjęte założenia na początku zakładały 800MHz dla ARM’a i DSP (znane tu jako IVA). Stopniowo w miarę postępu projektu częstotliwość była obniżana aż doszło do 600MHz (choć było jakiś czas poniżej 500MHz). Należy wspomnieć o ważnej rzeczy, a mianowicie maksymalna częstotliwość pracy procesorów ograniczona jest jedynie poborem mocy. Procesor ARM’a bez problemu pracuje nawet na 1100MHz przy odpowiednio doregulowanym napięciu. tyle, że za dużo wtedy zabiera energii; dużo za dużo. OMAP3430 to pierwsza w świecie implementacja Cortex’a-A8 który powstawał wraz z OMAP’em-3430.

Pierwszy „silicon” powstał we wrześniu 2006 roku. Był nad wyraz udany, co zaskoczyło wszystkich. W porównaniu z poprzednimi OMAP’ami prawie wszystko działało, no i pracował na 1GHz bez kłopotów. Jak wiemy „prawie” robi różnice wiec szybko powstawały kolejne wersje.

Garść technicznych ciekawostek

OMAP-3430 wykonany jest w technologii 65nm. W takiej litografii nie lada wyzwaniem jest upływ energii przez bardzo cienkie warstwy izolacyjne. Dlatego też postawiono na technologie w pełni dynamicznej kontroli nad częstotliwością i napięciami. W procesorze są cztery źródła częstotliwości („Digital Phase Locked Loop” DPLL). ARM, IVA i inne ważne moduły jak akceleracja 2D/3D czy akcelerator wyświetlacza mają niezależne źródła zegara. Do tego jest kilka systemów zasilań. Ideą jest jednoczesna i dynamiczna kontrola nad częstotliwością i napięciem dostosowująca wydajność do zapotrzebowania w danej chwili każdej funkcjonalnej części. Co jest nie potrzebne jest wyłączone bądź uśpione. Tzw. „Power Management” zastosowany w tym procesorze jest bardzo nowatorski i nosi nazwę „SmartReflex”. Dynamiczna kontrola napięcia wymagała specjalnej logiki łączącej przenoszącej sygnały pomiędzy wyspami napięć („Volatge Domains”) które mogą mieć różne napięcia bądź są całkiem wyłączone. Prosty aplet na N8xx pokazywał częstotliwość pracy OMAP’a 2420 która przyjmowała dwie wartości 190 i 380MHz, to dlatego, że procesor był połączony synchronicznym mostkiem z magistralą i mógł mieć częstotliwość będącą pełną wielokrotnością. W OMAP3430 mostki od ARM’a i IVA są asynchroniczne. Tak, więc częstotliwości procesorów mogą się zmieniać niemalże płynnie. Raj dla miłośników pokręcania.

„Secure” czyli bezpiecznie

Również w tym obszarze, OMAP-3430 jest absolutnie pionierski. Począwszy od OMAP’a-1610 TI bardzo duży nacisk kładł na „security” silnie wspomagane przez sprzęt. Potrzeba tak silnego i pewnego mechanizmu zabezpieczeń bierze się z Digital Rights Management (DRM) oraz z chęci dokonywania transakcji płatniczych. Poprzednie OMAP’y zaopatrzone były w wspomaganie sprzętowe zrealizowane, jako zewnętrzny moduł śledzący to, co robi ARM korzystający z „debugowych” końcówek rdzenia. Wraz ze sprzętem, „security” wspomagane było przez specjalny kawałek kodu w ROM’ie który tworzył sztucznie, bezpieczny tryb procesora. ARM wykorzystał doświadczenia TI i zintegrował specjalny tryb pracy w swoim rdzeniu. Technologia nazywa się „TrustZone”. Cortex-A8, potrafi wykonywać instrukcje w specjalnym trybie „secure mode” dając dostęp do zasobów normalnie nie dostępnych takich jak specjalna pamięć czy moduły kryptograficzne. Wraz z kodem w ROM’ie rozwiązanie to tworzy niespotykany dotąd poziom zabezpieczeń i środowisko do uruchamiania „secure applications” czyli certyfikowanych bezpiecznych aplikacji.

Niestety, a w zasadzie „stety”, w tabletach N8x0 stosowana była wersja procesora „General Purpose” (GP) czyli z wyłącznym „secure mode”. Myślę, że w N900 jest również procesor GP, inaczej pisanie otwartego systemu operacyjnego mogłoby być nie możliwe.

Wydajność w rzeczywistości

Ilekroć jest mowa o megahercach, jestem trochę poirytowany. Wiem, ze dla przeciętnego użytkownika to najprostszy sposób na porównanie wydajności. Tyle, że częstotliwość w zasadzie nie wiele znaczy. Po pierwsze, rozpatrywanie samego rdzenia ARM’a w oderwaniu od całej reszty jest zupełnie bez sensu. Bo przecież, wydajność to głównie szyna łącząca moduły, to prędkość pamięci RAM, to wydajność systemowego DMA, to wszystkie wspomagające peryferia. W OMAP’ie 3430 mamy potężne mechanizmy wspomagające grafikę i wyświetlacz. Dla przykładu, obraz z kamery może być bezpośrednio przekazany w dowolny obszar wyświetlacza przeskalowany i obrócony bez udziału ani ARM’a ani IVA’y! Jeżeli odtwarzamy film, to DMA przerzuca dane z karty do IVA i a potem zdekodowane ramki od razu na wyświetlacz, ARM sporadycznie tylko zarządza kartą i DMA. Coretex A8 też może być inny w innym procesorze. Kiedy konfiguruje się ARM’a w danym chipie ustawiane są setki parametrów wpływające na wydajność. W OMAP3430 mamy pierwszy wbudowany rdzeń z „cache” drugiego poziomu! Jest go 256kB. Kto pamięta czasy PC-386/PC-486 wie jak wiele zależało od tego czy wsadzone są w płytę kostki pamięci „cache”. Oczywiście jest też „cache” pierwszego poziomu, po 32kB (jeden na szynie danych i jeden na szynie rozkazów). No, jeśli dodamy do tego oprogramowanie, to w zasadzie tylko porządne, zestandaryzowane testy będą mogły powiedzieć czy N900 jest wydajniejszy od jakiegoś tam innego czegoś. Nie żadne megaherce. A najwięcej to pewnie będą mogli powiedzieć sami użytkownicy. N8x0 chodziło całkiem żwawo, więc coś, co jest mniej więcej 10 razy bardziej wydajne powinno zrobić wrażenie.

Liczy się też wygląd zewnętrzny

Foto 1 pokazuje jak wygląda goły procesor. Goły, bo wokół płyteczki silikonu widzimy pola lutownicze, do których przylutowana będzie pamięć flash+RAM w jednej obudowie. Taka „kanapka” oszczędza mnóstwo miejsca. Jak ktoś będzie miał okazje oglądać wnętrze N900 niech nie szuka OMAP’a tylko kostki 12x12mm oznaczonej przez producenta pamięci. Foto 2 pokazuje jak cienki jest silikon, jak kartka papieru. OMAP-3430 to tzw. „Flip-Chip”, silikon nie jest „bondowany” drucikami tylko odwrócony i przyklejony do „back-plane” czyli małej płytki drukowanej stanowiącej podstawę kości. Foto 3 pokazuje nasz procesor od dołu, dla porównania OMAP-2420.

Mam nadzieje, że choć trochę pokazałem jak niesamowitym może być procesor, o którym istnieniu wielu użytkowników nawet nie myśli. To tylko parę zdań, o procesorze, którego stworzenie pochłonęło ponad 100 milionów dolarów i o którym można by napisać książkę.

© 2009 pocoryk@o2.pl

Wszelkie prawa zastrzeżone. Kopiowanie całości bądź fragmentów bez zgody autora zabronione.

Umieszczone w kategorii Ciekawostki, Informacje

dodajdo.com
Serce n900 czyli co tam naprawdę siedzi190MHz 256kB 380MHz ciekawostki technicze Cortex’a-A8 krzem OMAP-25xx OMAP-3430 Power Management procesor procesor n900 procesor w nokii procesor w tablecie security silicon SmartReflex tablety technologia 65nm TrustZone wydajność wydajność n900
  1. sprae Said,

    Udany artykuł. Z wrażenia wyłączyłem nogą komputer i musiałem czytać drugi raz. Nie ukrywam, że z przyjemnością.

  2. Marcin Juszkiewicz Said,

    Procesor ARM’a bez problemu pracuje nawet na 1100MHz przy odpowiednio doregulowanym napięciu. tyle, że za dużo wtedy zabiera energii; dużo za dużo. OMAP3430 to pierwsza w świecie implementacja Cortex’a-A8 który powstawał wraz z OMAP’em-3430.

    To nie jest procesor ARM-a tylko TI. Poprawniej pewnie byłoby “rdzeń ARM bez problemu pracuje”.

    Co do podkręcania OMAP3 – BeagleBoard domyślnie pracuje na 500MHz, może być podkręcony do 600MHz. Developerzy Pandory wykręcili tę wersję do 800MHz. Dopiero niedawno TI ogłosiło nowe wersje OMAP3 pracujące nominalnie na 720MHz tak więc na ile to się wykręci to nie wiem.

    OMAP3430 to pierwsza w świecie implementacja Cortex’a-A8 który powstawał wraz z OMAP’em-3430.

    “implementacja rdzenia Cortex-A8″ raczej. A czy była to pierwsza implementacja? Raczej dopiero druga – na czymś twórcy rdzenia przecież testowali swoje dzieło a od inżyniera z ARM Ltd. wiem, że pierwsze wersje powstają jako “softcore” dużych kości FPGA.

    N8x0 mają OMAP24xx pracujący z prędkością 333MHz (OS2007) lub 400MHz (OS2008). Nie wiem skąd autor wytrzasnął 190/380MHz (cpufreq daje kilka prędkości na n8x0 a nie tylko dwie).

    A i przyczepię się – “ARM-a” a nie “ARM’a”, IVA zamiast “IVA-y” itp

    Artykuł napisany ciekawie mimo paru błędów.

  3. pocoryk Said,

    Marcin,
    Co do błedow stylistycznych to chylę czoło. Głownie dlatego, iż zwykle używamy slangu technicznego i skrótów myślowych.

    Cortex-A8 powstawał wraz z OMAP’em 3430. Z pewnością ARM go emulował i symulował “u siebie” ale jednocześnie robił to TI.

    Co do podkręcania, w 2007 roku na kongresie 3GSM TI miał takie demo “Web browsing experience with 1GHz processor” na płytce z OMAP-3430. Bez zmiany napięcia 900MHz to granica stabilności, więc pewnie dlatego 800MHz jest oficjalnie podane. Poza tym BeagleBoard to chyba OMAP-3530? TI podaje prędkość przy poborze mocy w granicach przyzwoitości, tak jak wspomniałem w artykule.

    Na mojej N800 mam aplet “CPU Speed” ktory właśnie tak pokazuje choć to OS2008. Cóż, tak chyba ma być.

  4. Marcin Juszkiewicz Said,

    n810:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_frequencies
    165000 266000 330000 400000

    I rzeczywiście – BB ma 3530.

  5. sprae Said,

    Stan 266 MHz uaktywnia się kiedykolwiek? Bo 333 Jest podczas aktywności DSP.

  6. Marcin Juszkiewicz Said,

    sprae: a to zależy od usera i tego jak ustawi tableta. U mnie przez większość czasu chodzi na 165MHz.

Dodaj komentarz