Szétszedve: mikroszkóp alatt az Apple A7 processzor

Ez a cikk legalább 1 éve frissült utoljára. A benne szereplő információk a megjelenés idején pontosak voltak, de mára elavultak lehetnek.

Nemrég már volt szó az iPhone 5s-ben lévő Apple A7 processzor előnyeiről nagy vonalakban. Már akkor megemlítettük, hogy nem áll túl sok információ a rendelkezésre az eszközről, hiszen az Apple igyekszik azt a legnagyobb titokban tartani – a részletesebb vizsgálathoz tehát egy mikroszkópos vizsgálat lenne szükséges. Szerencsére egy, az iFixit és a Chipworks szakértőiből, szervizeseiből álló csapat ezt is elvégezte, így újabb értékes részletek kerültek napvilágra a cég legújabb üdvöskéjével kapcsolatban.

Szétszedve

A7-floorplan-Chipworks-001

A „jószomszédinak” még a legnagyobb jóindulattal sem nevezhető Apple-Samsung-viszony ellenére a chip legyártását még mindig a dél-koreai konkurecia végzi, a saját Exynos fantázianevű processzorához hasonló gyártástechnológiával. Ez 28 nanométeres lapkavastagságot és magas dielektromos állandójú szigetelővel készült tranzisztorokat takar. A processzor maga két CPU- és négy GPU-maggal rendelkezik, és az eddigiekhez hasonlóan teljesen integrált („System-on-a-Chip”, SoC) kivitelezésű, tehát a processzorral egy tokban van a RAM és szinte minden más központi alkatrész is.

A teljes, pontos kapcsolási rajz visszafejtése még igénybe vesz némi időt (hiszen sok millió alkatrészből álló rendszerről van szó), a Chipworks munkatársai viszont azt a tippet engedték meg maguknak az eddigi vizsgálatok alapján, hogy az Apple megváltoztatta az általa megvásárolt ARM A53/57 tervet, tehát az A7 ugyan az ARMv8 családba tartozik, viszont nem követi teljes egészében az eredeti felépítést.

Apple-A7-Chipworks-001

Az A7-ben 256 kB méretű L1 és 1 MB-os L2 cache található, azt viszont még mindig nem sikerült kideríteni, hogy vajon a RAM mennyiségét megnövelték-e, vagy maradt az eddigi 1 GB.

A többi főbb alkatrész gyártóját is sikerült kideríteni: az M7 mozgásfeldolgozó chip valójában az NXP Microcontroller LPC18A1 típusú mikrokontrollere, az iránytűhöz használt magnetométert és az azt meghajtó cél-IC-t a Bosch készíti, a hátlapi kamera egy Sony Exmor-RS szenzor, a baseband pedig egy Broadcom BCM 4334, a 4G/LTE támogatását lehetővé tevő Qualcomm MDM9615M modemmel kiegészítve.

Az ujjlenyomatokból számolt hashek tárolására szolgáló „secure enclave”-et is szemügyre vették elektronmikroszkóppal. A Chipworks cikke szerint ez igazából egy nagyjából 3 MB méretű SRAM, szintén az A7 tokján belül. A cég azt is megígérte, hogy a Touch ID szenzort is szétszedik és megvizsgálják majd. Érdekes, hogy mindeközben a Samsung eléggé le van maradva az ujjlenyomat-olvasás tényleges implementálásától. „Még nem fejlesztjük a technológiát”, mondta el a Samsung egyik szóvivője a Korea Herald című lapnak.

Apple-A7-chip-Secure-Enclave-001

Megszólal a fejlesztő

Mindeközben Mike Ash, az ismert iOS-programozó is közzétett a blogján egy cikket a hetente megjelenő „Friday Q&A” című írássorozatának keretein belül, amelynek a célja a 64 bitre való váltással kapcsolatos mítoszok lerombolása és végre szakmailag pontos információk közlése. Akit érdekel, annak mindenképpen érdemes végigolvasnia (én megtettem), nagyon tanulságos. Álljanak itt a főbb tévhitek és pontosításuk a teljesség igénye nélkül:

– A „64 bites” kifejezés a CPU-nak két tulajdonságára utalhat: az egész számok és a pointerek maximális hosszára. A modern processzorokban ez szerencsére általában ugyanaz. Viszont: a kifejezés nem vonatkozik a RAM-címbusz és az adatbusz fizikai méretére, sem pedig a lebegőpontos regiszterek hosszára (az ARM architektúra már jó ideje 64-bites, „double” FPU-regisztereket használ, a 32 bites CPU-kban is).

– A 64 biten ábrázolt egészekkel végzett műveletek gyorsabbak lehetnek (mert nincs szükség két 32 bites regiszter szoftveres kombinálására);

– Nem magában a regiszterméret-növekedésében rejlik a sebességnövekedés titka. Az ARM64 egy teljesen új belső felépítést hordoz magában, a több változást eszközöltek annál, minthogy csupán megkétszerezzék a szóhosszúságot. Például dedikált SHA-1- és SHA-256-utasítások vannak beépítve a processzorba, a NEON SIMD immár teljes IEEE-754 lebegőpontos támogatással rendelkezik (a 32 bites architektúrában a szabvány nehezebben implementálható részeit egyszerűen kihagyták az áramkörökből), és a regiszterek nemcsak hosszabbak lettek, de több is van belőlük (ez, amint már a múltkori cikkben is szó volt róla, a gyorsabb adatelérést, -mozgatást segíti elő);

– Az iOS-alkalmazások jelentős részét Objective-C nyelven írják. Az Objective-C egy dinamikus nyelv, ami azt jelenti, hogy a program különböző komponenseit (objektumok, metódusok, osztályok, …) futásidőben vizsgálhatjuk, azok viselkedését módosíthatjuk. Ennek a funkciónak a megvalósítása azonban némi sebességcsökkenéssel jár (például azért, mert minden egyes objektum használatakor ki kell olvasni belőle a típusinformációt, az nem fordítási, hanem futásidőben kerül kiértékelésre). Mindemellett az Objective-C memóriakezelési módja a referenciaszámlálás, ami azt jelenti, hogy az objektumok elérésekor bizonyos esetekben növelni vagy csökkenteni kell egy hozzárendelt számlálót. Ezek a számlálók bizonyos okokból nem az objektumon belül helyezkednek el, hanem egy globális hash tábla ad nekik otthont, az pedig egy komplex adatstruktúra – olvasása és írása sokkal lassabb, mint egy egyszerű memóriaelérés.

A 64 bites pointerek lehetővé teszik – az eddig is használt, úgynevezett „tagged pointer” technikához hasonlóan –, hogy a hash tábla helyett magában az objektumot reprezentáló pointerben tároljuk a típusinformáció egy részét és a referenciaszámlálót, ezáltal felgyorsítva elérésüket.

Végkövetkeztetésként Ash azt vonja le, hogy a 64 bitre való váltás sem nem csodafegyver, sem nem puszta marketingfogás – az igazság, mint oly gyakran, valahol a kettő között keresendő.

Ezek még érdekelhetnek:


Írd le a véleményedet! (Moderációs elveinket ide kattintva olvashatod.)

Hozzászólás írásához be kell jelentkezned!