Amber (processor)

The Amber processor core is an ARM architecture-compatible 32-bit reduced instruction set computing (RISC) processor. It is open source, hosted on the OpenCores website, and is part of a movement to develop a library of open source hardware projects.[1]

## Overview

[edit]

The Amber core is fully compatible with the ARMv2a instruction set and is thus supported by the GNU toolchain. This older version of the ARM instruction set is supported because it is not covered by patents, and so can be implemented with no license from ARM Holdings, unlike some prior open source projects (e.g., nnARM).[2] The cores were developed in Verilog 2001 and are optimized for field-programmable gate array (FPGA) synthesis. For example, there is no reset logic: all registers are reset as part of FPGA initialization. The Amber project provides a complete embedded field-programmable gate array (FPGA) system incorporating the Amber core and several peripherals, including universal asynchronous receiver/transmitters (UARTs), timers, and an Ethernet MAC.

The Amber project provides two versions of the core. Both cores implement the same instruction set architecture (ISA) and are fully software compatible.

* The Amber 23 has a 3-stage pipeline, a unified instruction and data cache, a Wishbone interface, and is capable of 0.75 DMIPS (Dhrystone) per MHz. The Amber 23 core is a very small 32-bit core that performs well. Register-based instructions execute in one cycle, except for those involving multiplication. Load and store instructions require three cycles. The core's pipeline is stalled either when a cache miss occurs, or when the core performs a Wishbone access.
* The Amber 25 has a 5-stage pipeline, separate data and instruction caches, a Wishbone interface, and is capable of 1.0 DMIPS per MHz. The Amber 25 core provides 30 to 40% better performance than the Amber 23 core and is 30 to 40% larger. Register-based instructions execute in one cycle, except for instructions involving multiplication, or complex shift operations. Load and store instructions also execute in one cycle unless there is a register conflict with a following instruction. The core's pipeline is stalled when a cache miss occurs in either cache, when an instruction conflict is detected, when a complex shift is executed, or when the core performs a Wishbone access.

Both cores have been verified by booting a Linux 2.4 kernel. Versions of the Linux kernel from the 2.4 branch and earlier contain configurations for the supported ISA. Versions of the Linux kernel 2.6 and later do not explicitly support the ARM v2a ISA and so need more modifications to run. The cores do not contain a memory management unit (MMU) so they can only run a non-virtual memory variant of Linux, such as μClinux.

## See also

[edit]

* Acorn Computers

## Further reading

[edit]

For a description of the ARMv2a ISA, see Archimedes Operating System: A Dabhand Guide,[3] or Acorn RISC Machine Family Data Manual.[4]

## References

[edit]

1. ^ Spooner, John G. (January 2, 2002). "Open-source credo moves to chip design". Tech Industry. CNET. Retrieved 2018-05-15.
2. ^ "Amber RISC Core". Soft Processor. 32bit micro. Archived from the original on 2015-02-02.
3. ^ van Someren, Alex; van Someren, Nic (February 1989). Archimedes Operating System: A Dabhand Guide (PDF). Dabs Press. ISBN 1-870336-48-8. Retrieved 2018-05-15..
4. ^ VLSI Technology (1990). Acorn RISC Machine (ARM) Data Manual (PDF). Prentice Hall. ISBN 0-13-781618-9. Retrieved 2018-05-15..

## External links

[edit]

* Official website
* Amber Core Specification
* Marsohod Blog
* Clarke, Peter (24 June 2013). "Cambridge Calling: The rise of the ARM clones". Automotive Blog. EE Times. Retrieved 2018-05-21.

* v
* t
* e

ARM-based chips

* v
* t
* e

Application ARM-based chips

* Arm
* ARM architecture family
* List of ARM processors
* List of products using ARM processors
* ARM Cortex-A
* ARM Cortex-R
* ARM Cortex-M
* Comparison of ARM processors

Application
processors
(32-bit)|

| ARMv7-A|

| Cortex-A5|

* Actions ATM702x
* Amlogic M805, S805, T82x
* Atmel SAMA5D3
* InfoTM iMAPx820, iMAPx15
* Qualcomm Snapdragon S4 Play, 200
* RDA RDA8810PL
* Telechips TCC892x

|

Cortex-A7|

* Allwinner A2x, A3x, A83T, H3, H8
* NXP i.MX7, QorIQ LS10xx, NXP i.MX6UL
* Broadcom BCM2836, BCM23550
* Leadcore LC1813, LC1860/C, LC1913, LC1960
* Marvell Armada 1500 mini plus, PXA1920
* MediaTek MT65xx
* Rockchip RK3126
* Qualcomm Snapdragon 200, 205, 208, 210, 212, 400
* UNISOC SC7731E

Cortex-A8|

* Allwinner A1x
* Apple A4
* Freescale i.MX5
* Rockchip RK291x
* Samsung Exynos 3110 (S5PC110), S5PV210
* Texas Instruments OMAP 3, Sitara AM3xxx, DM38x
* ZiiLABS ZMS-08

Cortex-A9|

* Actions ATM702x, ATM703x
* Altera Cyclone V, Arria V/10
* Amlogic AML8726, MX, M6x, M801, M802/S802, S812, T86x
* Apple A5, A5X
* Broadcom BCM21xxx, BCM28xxx
* Freescale i.MX6
* HiSilicon K3V2, 910's
* InfoTM iMAPx912
* Leadcore LC1810, LC1811
* Marvell Armada 1500 mini
* MediaTek MT65xx
* Nvidia Tegra, 2, 3, 4i
* Nufront NuSmart 2816M, NS115, NS115M
* Renesas EMMA EV2, R-Car H1, RZ/A
* Rockchip RK292x, RK30xx, RK31xx
* Samsung Exynos 4 421x, 441x
* ST-Ericsson NovaThor
* Telechips TCC8803
* Texas Instruments OMAP 4, Sitara AM4xxx
* VIA WonderMedia WM88x0, 89x0
* Xilinx Zynq-7000
* ZiiLABS ZMS-20, ZMS-40

Cortex-A15|

* Allwinner A80
* HiSilicon K3V3
* MediaTek MT8135/V
* Nvidia Tegra 4, K1
* Renesas R-Car H2
* Samsung Exynos 5 52xx, 54xx
* Texas Instruments OMAP 5, DRA7xx, Sitara AM5xxx, AM57xx

Cortex-A17|

* MediaTek MT6595, MT5595
* MStar 6A928
* Rockchip RK3288

Others|

* Cortex-A12

ARMv7-A
compatible|

* Apple A6, A6X, S1, S1P, S2, S3
* Broadcom Brahma-B15
* Marvell P4J
* Qualcomm Snapdragon S1, S2, S3, S4 Plus, S4 Pro, 600, 800 (Scorpion, Krait)

ARMv8-A|

| Others|

* Cortex-A32

|

Application
processors
(64-bit)|

| ARMv8-A|

| Cortex-A35|

* NXP i.MX8X
* MediaTek MT6799, MT8516
* Rockchip RK3308

|

Cortex-A53|

* Actions GT7, S900, V700
* Allwinner A133, A64, H5, H64, R18
* Altera Stratix 10
* Amlogic S9 Family, T96x
* Broadcom BCM2837
* EZchip TILE-Mx100
* HiSilicon Kirin 620, 650, 655, 658, 659, 930, 935
* Marvell Armada PXA1928, Mobile PXA1908/PXA1936
* MediaTek MT673x, MT675x, MT6761V, MT6762/V, MT6763T, MT6765/G/H, MT6795, MT8161, MT8163, MT8165, MT8732, MT8735, MT8752
* NXP ARM S32, QorIQ LS1088, LS1043, i.MX8M
* Qualcomm Snapdragon 215, 410, 412, 415, 425, 427, 429, 430, 435, 439, 450, 610, 615, 616, 617, 625, 626, 630
* Renesas RZ/V2M
* Rockchip RK3328, RK3368, RK3562, RK3566
* Samsung Exynos 7570, 7578, 7580, 7870, 7880
* Texas Instruments Sitara AM6xxx
* UNISOC SC9820E, SC9832E, SC9860/GV
* Xilinx ZynqMP

Cortex-A57|

* AMD Opteron A1100-series
* NXP QorIQ LS20xx
* Nvidia Tegra X1, Tegra X2
* Qualcomm Snapdragon 808 and 810
* Samsung Exynos 7 5433, 7420
* HiSilicon Kirin Hi1610 and Hi1612

Cortex-A72|

* AWS Graviton
* Broadcom BCM2711
* HiSilicon Kirin 950, 955, Kunpeng 916
* MediaTek MT6797/D/T/X, MT8173, MT8176, MT8693
* MStar 6A938
* Qualcomm Snapdragon 650, 652, 653
* Rockchip RK3399
* NXP QorIQ LS2088, QorIQ LS1046A, QorIQ LX2160A, QorIQ LS1028A, i.MX8

Cortex-A73|

* Allwinner A333
* Amlogic S922X
* Qualcomm Snapdragon 460, 632, 636, 660, 662, 665, 680, 685, 6s 4G Gen 1, 835
* Samsung Exynos 7872, 7884, 7885, 7904, 9609, 9610, 9611
* HiSilicon Kirin 710, 960, 970
* MediaTek MT6771/V, MT6799, MT8183, MT8788

Others|

* Cortex-A34

ARMv8-A
compatible|

* Ampere eMAG
* Apple A7, A8, A8X, A9, A9X, A10, A10X
* Applied Micro X-Gene
* Cavium ThunderX
* Nvidia Tegra K1 (Denver), Tegra X2 (Denver2)
* Qualcomm Kryo, Falkor
* Samsung Exynos M1 (Mongoose), M2 (Mongoose)

ARMv8.1-A|

| ARMv8.1-A
compatible|

* Cavium ThunderX2

|

ARMv8.2-A|

| Cortex-A55|

* Allwinner A523
* Samsung Exynos 850
* UNISOC SC9863/A, T603, T7100

|

Cortex-A75|

* Qualcomm Snapdragon 670, 710, 712, 845, 850
* Samsung Exynos 9820, 9825
* MediaTek MT6769H/T/V/Z, MT6768, MT6779V
* UNISOC T310, T606, T610, T615, T616, T618, T619, T620, T700, T710, T7200, T7225, T7250, T7255, T7280, T740

Cortex-A76|

* Allwinner A733
* Google Tensor
* HiSilicon Kirin 810, 820, 980, 985, 990
* Qualcomm Snapdragon 480(+), 675, 678, 720G, 730(G), 732G, 765(G), 768G, 855(+), 860, 7c (Gen 2), 8c, 8cx (Gen 2)
* Microsoft SQ1, SQ2
* MediaTek MT6781, MT6785V, MT6789, MT6833V/P, MT6853V/T, MT6873, MT6875, MT8192, Dimensity 6020, 6080, 6100+, 6300(+), 6400
* Rockchip RK3588s
* Samsung Exynos 990
* UNISOC T750, T760, T765, T770, T820, T8100, T8200, T8300, T9100

Cortex-A77|

* MediaTek Dimensity 1000(+)
* Qualcomm Snapdragon 690, 750G, 865(+), 870
* HiSilicon Kirin 9000
* Samsung Exynos 880, 980

Cortex-A78|

* Google Tensor G2
* MediaTek MT6877, MT6878, MT6879, MT6891, MT6893, Dimensity 7020, 7025 (Ultra), 7030, 7050, 7060, 7300 (Energy/Pro/Ultimate/Ultra/X), 7400(X), 8000, 8020, 8050, 8100, 8200 (Ultimate/Ultra), Kompanio 900T, 1200, 1380, 1300T
* Qualcomm Snapdragon 4 Gen 1, 4(s) Gen 2, 695, 6 Gen 1, 6(s) Gen 3, 778G(+), 780G, 782G, 888(+)
* Samsung Exynos 1080, 1280, 1330, 1380, 1480, 2100

Cortex-X1|

* Google Tensor, Tensor G2
* Qualcomm Snapdragon 888(+)
* Samsung Exynos 2100

Neoverse N1|

* Ampere Altra, Altra Max
* AWS Graviton2

Others|

* Cortex-A65, Cortex-A65AE, Cortex-A76AE, Cortex-A78C, Cortex-X1C, Neoverse E1

ARMv8.2-A
compatible|

* Apple A11
* Fujitsu A64FX
* HiSilicon TaiShan v110
* Nvidia Tegra Xavier (Carmel)
* Samsung Exynos M3 (Meerkat), M4 (Cheetah), M5 (Lion)

ARMv8.3-A|

| ARMv8.3-A
compatible|

* Apple A12, A12X/A12Z, S4, S5
* Marvell ThunderX3

|

ARMv8.4-A|

| Neoverse V1|

* AWS Graviton3

|

ARMv8.4-A
compatible|

* Apple A13, S6, S7, S8

ARMv8.5-A|

| ARMv8.5-A
compatible|

* Apple A14, M1

|

ARMv8.6-A|

| ARMv8.6-A
compatible|

* Apple A15, A16, A17, M2, M3

|

ARMv8.7-A|

| ARMv8.7-A
compatible|

* Qualcomm Oryon

|

ARMv9.0-A|

| Cortex-A510|

* Google Tensor G3
* MediaTek Dimensity 7200 (Pro/Ultra), 7350 Pro, 8300 (Ultra), 8350 (Extreme/Ultimate), 9000(+), 9200
* Qualcomm Snapdragon 7 Gen 1/3, 7s/7+ Gen 2, 8(+) Gen 1, 8 Gen 2
* Samsung Exynos 2200

|

Cortex-A710|

* MediaTek Dimensity 9000/9000+
* Qualcomm Snapdragon 7 Gen 1/3, 7s/7+ Gen 2, 8(+) Gen 1, 8 Gen 2
* Samsung Exynos 2200

Cortex-A715|

* Google Tensor G3
* MediaTek Dimensity 7200 (Pro/Ultra), 7350 Pro, 8300 (Ultra), 8350 (Extreme/Ultimate), 9200
* Qualcomm Snapdragon 7 Gen 3, 8 Gen 2

Cortex-X2|

* MediaTek Dimensity 9000/9000+
* Qualcomm Snapdragon 7s/7+ Gen 2, 8(+) Gen 1
* Samsung Exynos 2200

Cortex-X3|

* Google Tensor G3
* MediaTek Dimensity 9200(+)
* Qualcomm Snapdragon 8 Gen 2

Neoverse N2|

* Alibaba YiTian 710
* Microsoft Azure Cobalt 100

Neoverse V2|

* AWS Graviton4
* Google Axion
* Nvidia Grace

ARMv9.2-A|

| Cortex-A520|

* Google Tensor G4
* Qualcomm Snapdragon 6 Gen 4, 7s/7+ Gen 3, 8(s) Gen 3
* Samsung Exynos 1580, 2400(e), 2500
* Xiaomi Xring O1

|

Cortex-A720|

* Google Tensor G4
* MediaTek Dimensity 9300(+), 9400e
* Qualcomm Snapdragon 6 Gen 4, 7s/7+ Gen 3, 8(s) Gen 3, 8s Gen 4
* Samsung Exynos 1580, 2400(e)

Cortex-A725|

* MediaTek Dimensity 8400 (Ultra)
* Samsung Exynos 2500
* Xiaomi Xring O1

Cortex-X4|

* Google Tensor G4
* MediaTek Dimensity 9300(+), Dimensity 9400(+,e)
* Qualcomm Snapdragon 7+ Gen 3, 8(s) Gen 3, 8s Gen 4
* Samsung Exynos 2400(e)

Cortex-X925|

* MediaTek Dimensity 9400(+)
* Samsung Exynos 2500
* Xiaomi Xring O1

Neoverse N3|

Neoverse V3|

Nvidia Thor (V3AE)

ARMv9.2-A
compatible|

* Apple A18
* Apple M4

* v
* t
* e

Embedded ARM-based chips

* ARM Holdings
* ARM architecture family
* List of ARM cores
* ARM Cortex-A
* ARM Cortex-R
* ARM Cortex-M
* List of ARM Cortex-M development tools

Embedded
microcontrollers|

| Cortex-M0|

* Cypress PSoC 4000, 4100, 4100M, 4200, 4200DS, 4200L, 4200M
* Infineon XMC1000
* Nordic nRF51
* NXP LPC1100, LPC1200
* nuvoTon NuMicro
* Sonix SN32F700
* STMicroelectronics STM32 F0
* Toshiba TX00
* Vorago VA108x0

|

Cortex-M0+|

* Cypress PSoC 4000S, 4100S, 4100S+, 4100PS, 4700S, FM0+
* Holtek HT32F52000
* Microchip (Atmel) SAM C2, D0, D1, D2, DA, L2, R2, R3
* NXP LPC800, LPC11E60, LPC11U60
* NXP (Freescale) Kinetis E, EA, L, M, V1, W0
* Raspberry Pi RP2040
* Renesas Synergy S1
* Silicon Labs (Energy Micro) EFM32 Zero, Happy
* STMicroelectronics STM32 L0

Cortex-M1|

* Altera FPGAs Cyclone-II, Cyclone-III, Stratix-II, Stratix-III
* Microsemi (Actel) FPGAs Fusion, IGLOO/e, ProASIC3L, ProASIC3/E
* Xilinx FPGAs Spartan-3, Virtex-2-3-4

Cortex-M3|

* Actel SmartFusion, SmartFusion 2
* Analog Devices ADuCM300
* Cypress PSoC 5000, 5000LP, FM3
* Fujitsu FM3
* Holtek HT32F
* Microchip (Atmel) SAM 3A, 3N, 3S, 3U, 3X
* NXP LPC1300, LPC1700, LPC1800
* ON Semiconductor Q32M210
* Silicon Labs Precision32
* Silicon Labs (Energy Micro) EFM32 Tiny, Gecko, Leopard, Giant
* STMicroelectronics STM32 F1, F2, L1
* Texas Instruments F28, LM3, TMS470, OMAP 4
* Toshiba TX03

Cortex-M4|

* Microchip (Atmel) SAM 4L, 4N, 4S
* NXP (Freescale) Kinetis K, W2
* Renesas RA4W1, RA6M1, RA6M2, RA6M3, RA6T1

Cortex-M4F|

* Cypress 6200, FM4
* Infineon XMC4000
* Microchip (Atmel) SAM 4C, 4E, D5, E5, G5
* Microchip CEC1302
* Nordic nRF52
* NXP LPC4000, LPC4300
* NXP (Freescale) Kinetis K, V3, V4
* Renesas Synergy S3, S5, S7
* Silicon Labs (Energy Micro) EFM32 Wonder
* STMicroelectronics STM32 F3, F4, L4, L4+, WB
* Texas Instruments LM4F/TM4C, MSP432
* Toshiba TX04

Cortex-M7F|

* Microchip (Atmel) SAM E7, S7, V7
* NXP (Freescale) Kinetis KV5x, i.MX RT 10xx, i.MX RT 11xx, S32K3xx
* STMicroelectronics STM32 F7, H7

Cortex-M23|

* GigaDevice CD32E2xx
* Microchip (Atmel) SAM L10, L11, and PIC 32CM-LE 32CM-LS
* Nuvoton M23xx family, M2xx family, NUC1262, M2L31
* Renesas S1JA, RA2A1, RA2L1, RA2E1, RA2E2

Cortex-M33F|

* Analog Devices ADUCM4
* Dialog DA1469x
* GigaDevice GD32E5, GD32W5
* Nordic nRF91, nRF5340, nRF54
* NXP LPC5500, i.MX RT600
* ON RSL15
* Renesas RA4, RA6
* ST STM32 H5, L5, U5, WBA
* Silicon Labs Wireless Gecko Series 2

Cortex-M35P|

* STMicroelectronics ST33K

Cortex-M55F|

* Alif Semiconductor Ensemble
* Infineon PSoC Edge

Cortex-M85F|

* Renesas RA8

Real-time
microprocessors|

| Cortex-R4F|

* Texas Instruments RM4, TMS570
* Renesas RZ/T1

|

Cortex-R5F|

* Scaleo OLEA
* Texas Instruments RM57, AM2
* Xilinx Versal, ZynqMP, ZynqRF

Cortex-R7F|

* Renesas RZ/G2E, RZ/G2H, RZ/G2M, RZ/G2N

Cortex-R52F|

* NXP S32Z, S32E
* Renesas RZ/N2L, RZ/T2L, RZ/T2M

Cortex-R52+F|

* STMicroelectronics Stellar G, Stellar P

* v
* t
* e

Classic ARM-based chips

* ARM Holdings
* ARM architecture family
* List of ARM cores
* ARM Cortex-A
* ARM Cortex-R
* ARM Cortex-M
* List of ARM Cortex-M development tools

Classic
processors|

| ARM7|

* Atmel SAM7L, SAM7S, SAM7SE, SAM7X, SAM7XC, AT91CAP7, AT91M, AT91R
* Cirrus Logic PS7xxx, EP7xxx
* Mediatek MT62xx
* NXP LPC2100, LPC2200, LPC2300, LPC2400, LH7
* STMicroelectronics STR7

|

ARM9|

* Aspeed AST2400
* Atmel SAM9G, SAM9M, SAM9N, SAM9R, SAM9X, SAM9XE, SAM926x, AT91CAP9
* Cirrus Logic EP9xxx
* Freescale i.MX1x, i.MX2x
* Nuvoton NUC900
* NXP LPC2900, LPC3000, LH7A
* Philips Nexperia PNX4008
* Rockchip RK27xx, RK28xx
* Samsung S3C24xx
* STMicroelectronics Nomadik STn881x
* STMicroelectronics STR9
* Texas Instruments OMAP 1, AM1x, DaVinci
* VIA WonderMedia WM8505/8650
* ZiiLABS ZMS-05

ARM11|

* Broadcom BCM2835
* Cavium CNS3xxx
* Freescale i.MX3x
* Infotmic IMAPX210/220
* Mindspeed Comcerto 1000
* Nvidia Tegra APX, 6xx
* Qualcomm MSM7000, Snapdragon S1
* Samsung S3C64xx, S5P64xx
* ST-NXP Wireless Nomadik STn882x
* Telechips TCC8902
* Texas Instruments OMAP 2
* VIA WonderMedia WM87x0

ARMv2a
compatible|

* Amber (open FPGA core)

ARMv4
compatible|

* Faraday FA526, FA626
* DEC/Intel StrongARM

ARMv5TE
compatible|

* Intel/Marvell XScale
* Marvell Sheeva, Feroceon, Jolteon, Mohawk
* Faraday FA606TE, FA616TE, FA626TE, FA726TE

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template