Misplaced Pages

Amber (processor)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
(Redirected from Amber (processor core))

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.

Overview

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). 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.

Operating system support

Linux support

Windows support

See also

Further reading

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

References

  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

ARM-based chips
Application ARM-based chips
Application
processors
(32-bit)
ARMv7-A
Cortex-A5
Cortex-A7
Cortex-A8
Cortex-A9
Cortex-A15
Cortex-A17
Others
ARMv7-A
compatible
ARMv8-A
Others
Application
processors
(64-bit)
ARMv8-A
Cortex-A35
Cortex-A53
Cortex-A57
Cortex-A72
Cortex-A73
Others
ARMv8-A
compatible
ARMv8.1-A
ARMv8.1-A
compatible
ARMv8.2-A
Cortex-A55
Cortex-A75
Cortex-A76
Cortex-A77
Cortex-A78
Cortex-X1
Neoverse N1
Others
  • Cortex-A65, Cortex-A65AE, Cortex-A76AE, Cortex-A78C, Cortex-X1C, Neoverse E1
ARMv8.2-A
compatible
ARMv8.3-A
ARMv8.3-A
compatible
ARMv8.4-A
Neoverse V1
ARMv8.4-A
compatible
ARMv8.5-A
ARMv8.5-A
compatible
ARMv8.6-A
ARMv8.6-A
compatible
ARMv8.7-A
ARMv8.7-A
compatible
ARMv9.0-A
Cortex-A510
Cortex-A710
Cortex-A715
Cortex-X2
Cortex-X3
Neoverse N2
Neoverse V2
ARMv9.2-A
Cortex-A520
Cortex-A720
Cortex-X4
Cortex-X925
Neoverse N3-
Neoverse V3-
ARMv9.2-A
compatible
Embedded ARM-based chips
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
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
Cortex-M85F
  • Renesas RA8
Real-time
microprocessors
Cortex-R4F
  • Texas Instruments RM4, TMS570
  • Renesas RZ/T1
Cortex-R5F
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
Classic ARM-based chips
Classic
processors
ARM7
ARM9
ARM11
ARMv2a
compatible
ARMv4
compatible
ARMv5TE
compatible
  • Intel/Marvell XScale
  • Marvell Sheeva, Feroceon, Jolteon, Mohawk
  • Faraday FA606TE, FA616TE, FA626TE, FA726TE
Categories: