Architektury moderních procesorů a mikrořadičů ARM

Presentations

Architektury moderních procesorů a mikrořadičů ARM

Obsah přednášky (1)

Obsah přednášky (2)

Základní informace o ARM CPU

Jádro ARM

ARM + další rozšiřující moduly

Obchodní model ARM vs.Intel/AMD

Obchodní model ARM vs.Intel/AMD

Zajímavé akvizice ARM

Rozšíření čipů s jádrem ARM

Rok           Čipů
1997        9 000 000
1998       51 000 000
1999      175 000 000
2000      367 000 000
2001      420 000 000
2002      456 000 000
2003      782 000 000
2004    1 272 000 000
2005    1 662 000 000
2006    2 400 000 000
2007    2 900 000 000
2008    4 000 000 000
2009    3 900 000 000
2010    6 100 000 000
2011    7 900 000 000
2012    8 700 000 000
2013   10 000 000 000
2014   12 000 000 000
2015                ?

Rozšíření čipů s jádrem ARM

Rok 2010
    6 100 000 000 čipů
    95% smartphony
    10% přenosné počítače
    35% TV a set-top boxy
     0% desktopy
     0% servery :-)
Rok 2014
    12 000 000 000 čipů
    predikce pro 23% ARM na PC

Přednosti architektury ARM

ARM family, architecture, core

ARM family, architecture, core

Architektury a čipy ARM

Architektura          Jádra
ARMv1     26/32 bitů  ARM1
ARMv2     26/32 bitů  ARM2, ARM3
ARMv3     26/32 bitů  ARM6, ARM7
ARMv4     26/32 bitů  ARM8
ARMv5     32 bitů     ARM7EJ, ARM9E, ARM10E
ARMv6     32 bitů     ARM11
ARMv6-M   32 bitů     Cortex-M0, Cortex-M0+, Cortex-M1
ARMv7-M   32 bitů     Cortex-M3
ARMv7E-M  32 bitů     Cortex-M4, Cortex-M7
ARMv7-R   32 bitů     Cortex-R4, Cortex-R5, Cortex-R7
ARMv7-A   32 bitů     Cortex-A5, Cortex-A7, Cortex-A8,
                      Cortex-A9, Cortex-A12,
                      Cortex-A15, Cortex-A17
ARMv8-A   32/64 bitů  Cortex-A53, A57 a A72

Architektury a čipy ARM - využití

ARMv1      proof of concept, funkční hned první "várka"
ARMv2      Acorn Archimedes, 1982
ARMv3     
ARMv4      StrongARM
ARMv5     
ARMv6      Starší (univerzální) čipy, dnes RPI apod.
ARMv6-M    Mikrořadič, malá spotřeba, malý výkon
ARMv7-M    Mikrořadič, "zlatá střední cesta"
ARMv7E-M   Mikrořadič, vysoký výkon, složitější čip
ARMv7-R    Real-time aplikace
ARMv7-A    netbooky, smartphony, tablety, čtečky, desktop
ARMv8-A    servery

Rodina ARM1

Rodina ARM2

ARM1+ARM2 (společné vlastnosti)

Rodina ARM2 (pokr.)

Rodina ARM3

Rodina ARM6

Rodina ARM7

ARM7 vs ARM7T

Rodina StrongARM

ARM11

ARM11

ARM ve funkci mikrořadiče

Jádra v řadě Cortex-Mx

Jádro       Architektura            MPU
Cortex-M0   ARMv6-M    Von Neumann  ne
Cortex-M0+  ARMv6-M    Von Neumann  volitelná
Cortex-M1   ARMv6-M    Von Neumann  ne
Cortex-M3   ARMv7-M    Harvardská   volitelná
Cortex-M4   ARMv7E-M   Harvardská   volitelná
Cortex-M7   ARMv7E-M   Harvardská   volitelná

Jádra v řadě Cortex-Mx (pokr.)

Jádro       Dělička DSP Thumb             Thumb-2
Cortex-M0     ne    ne  kromě 3 instrukcí částecně
Cortex-M0+    ne    ne  kromě 3 instrukcí částecně
Cortex-M1     ne    ne  kromě 3 instrukcí částecně
Cortex-M3     ano   ne  kompletně         kompletně
Cortex-M4     ano   ano kompletně         kompletně
Cortex-M7     ano   ano kompletně         kompletně

Cortex-M0

Cortex-M0

Cortex-M0+

Cortex-M3

Cortex-M3

Cortex-M7

ARM pro spotřební elektroniku

ARM pro spotřební elektroniku

Cortex-A5

Low end zařízení

Cortex-A8

Použito v různých zařízeních

Cortex-A9

ARM pro real-time aplikace

Mikroprocesory ARM s 64bitovou architekturou

Změna označování

Proč AArch64?

Rodina ARMv8-A

A57

Osm samostatných pipeline (pokr.)

- Integer Multi-cycle
    Shift
    MUL
    DIV
    CRC
- FP/ASIMD 0
    všechny FP operace
    crypto
- FP/ASIMD 1
    ADD, MUL

A57

A57

Příklady použití čipů s jádrem ARM

BBC Micro Bit

Arduino Due

Raspberry Pi

Raspberry Pi: SoC

Raspberry Pi 2

Nintendo DS

Nintendo 3DS

☕ ☕ ☕