Intel Quark is a line of 32-bit x86 SoCs and microcontrollers by Intel, designed for small size and low power consumption, and targeted at new markets including wearable devices. The line was introduced at Intel Developer Forum in 2013, and discontinued in January 2019. [1]
Quark processors, while slower than Atom processors, are much smaller and consume less power. They lack support for SIMD instruction sets (such as MMX and SSE) [2] and only support embedded operating systems.
Quark powers the (now discontinued) Intel Galileo developer microcontroller board. [3] In 2016 Arduino released the Arduino 101 board that includes an Intel Quark SoC. [4] [5] The CPU instruction set is, for most models, the same as a Pentium (P54C/i586) CPU. [6]
The first product in the Quark line is the single-core 32 nm X1000 SoC with a clock rate of up to 400 MHz. The system includes several interfaces, including PCI Express, serial UART, I²C, Fast Ethernet, USB 2.0, SDIO, power management controller, and GPIO. There are 16 kB of on-chip embedded SRAM and an integrated DDR3 memory controller. [7] [8]
A second Intel product that includes Quark core, the Intel Edison microcomputer, was presented in January 2014. It has a form factor close to the size of an SD card, and is capable of wireless networking using Wi-Fi or Bluetooth. [9]
In January 2015, Intel announced the sub-miniature Intel Curie module for wearable applications, based on a Quark SE core with 80 kB SRAM and 384 kB flash. [10] At the size of a button, it also features a 6-axis accelerometer, a DSP sensor hub, a Bluetooth LE unit and a battery charge controller.
Intel announced the end-of-life of its Quark products in January 2019, with orders accepted until July 2019 and final shipments set for July 2022. [1] [11]
This section is written like a manual or guide.(September 2021) |
The name Lakemont has been used in reference to the processor core in multiple Quark-series processors. [12] : 4 [13] : 42
Source: [14]
(The L2 cache column shows the size of the L1 cache.)
Model | sSpec number | Cores | Clock rate | GPU frequency | L2 cache | I/O bus | Memory | Voltage | TDP | Socket | Release date | Part number(s) | Release price (USD) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Quark X1000 |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 | 0.95–1.1 V | 2.2 W |
| Q4'13 |
| $9.63 |
Quark X1001 |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 | 0.95–1.1 V | 2.2 W |
| Q2'14 |
| $11.77 |
Quark X1010 |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 (ECC) | 0.95–1.1 V | 2.2 W |
| Q1'14 |
| $10.16 |
Quark X1011 |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 (ECC) | 0.95–1.1 V | 2.2 W |
| Q2'14 |
| $12.31 |
Quark X1020 |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 (ECC) | 0.95–1.1 V | 2.2 W |
| Q2'14 |
| $11.45 |
Quark X1020D |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 (ECC) | 0.95–1.1 V | 2.2 W |
| Q1'14 |
| $10.70 |
Quark X1021 |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 (ECC) | 0.95–1.1 V | 2.2 W |
| Q2'14 |
| $13.39 |
Quark X1021D |
| 1 | 400 MHz | — | 16 KB | PCIe | DDR3-800 (ECC) | 0.95–1.1 V | 2.2 W |
| Q2'14 |
| $12.85 |
XCHG
are not supported) [15] Model | sSpec number | Cores | Clock rate | GPU frequency | L2 cache | I/O bus | Memory | Voltage | TDP | Socket | Release date | Part number(s) | Release price (USD) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Quark D1000 |
| 1 | 32 MHz | — | AHB-Lite, APB [16] : 30 | eSRAM | 1.62–3.63 V |
|
| Q3'15 | DMNIAD01SLVBT | $2.54 | |
Model | sSpec number | Cores | Clock rate | GPU frequency | L2 cache | I/O bus | Memory | Voltage | TDP | Socket | Release date | Part number(s) | Release price (USD) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Quark D2000 |
| 1 | 32 MHz | — | AHB-Lite, [13] : 72 APB [13] : 96 | eSRAM | 1.62–3.63 V | 0.025 W |
| Q3'15 | FND2000 | $2.54 | |
Model | sSpec number | Cores | Clock rate | GPU frequency | L2 cache | I/O bus | Memory | Voltage | TDP | Socket | Release date | Part number(s) | Release price (USD) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Quark SE C1000 |
| 1 | 32 MHz | — | 8 KB | AHB-Lite, APB | eSRAM | 1.8–3.3 V | 0.025 W |
| Q4'15 | LMCQ1000 | $10.32 |
Intel Quark SoC X1000 contains a bug (#71538) [17] that "under specific circumstances" results in a type of crash known as a segfault. The workaround implemented by Intel is to omit LOCK prefixes (not required on single-threaded processors) in the compiled code. [18] While source-based embedded systems like those built using the Yocto Project can incorporate this workaround at compile time, general purpose Linux distributions such as Debian are deeply affected by the bug. Such a workaround is not easy to implement in binaries meant to support multithreading too as they require LOCK prefixes to function properly. [19]
IA-32 is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the 80386 microprocessor in 1985. IA-32 is the first incarnation of x86 that supports 32-bit computing; as a result, the "IA-32" term may be used as a metonym to refer to all x86 versions that support 32-bit computing.
The Intel 80186, also known as the iAPX 186, or just 186, is a microprocessor and microcontroller introduced in 1982. It was based on the Intel 8086 and, like it, had a 16-bit external data bus multiplexed with a 20-bit address bus.
x86 is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the 8086 microprocessor and its variant, the 8088. The 8086 was introduced in 1978 as a fully 16-bit extension of 8-bit Intel's 8080 microprocessor, with memory segmentation as a solution for addressing more memory than can be covered by a plain 16-bit address. The term "x86" came into being because the names of several successors to Intel's 8086 processor end in "86", including the 80186, 80286, 80386 and 80486. Colloquially, their names were "186", "286", "386" and "486".
The Intel MCS-51 is a single chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems. The architect of the Intel MCS-51 instruction set was John H. Wharton. Intel's original versions were popular in the 1980s and early 1990s, and enhanced binary compatible derivatives remain popular today. It is a complex instruction set computer, but also has some of the features of RISC architectures, such as a large register set and register windows, and has separate memory spaces for program instructions and data.
AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.
x86-64 is a 64-bit version of the x86 instruction set, first announced in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mode.
SSE2 is one of the Intel SIMD processor supplementary instruction sets introduced by Intel with the initial version of the Pentium 4 in 2000. SSE2 instructions allow the use of XMM (SIMD) registers on x86 instruction set architecture processors. These registers can load up to 128 bits of data and perform instructions, such as vector addition and multiplication, simultaneously.
A host controller interface (HCI) is a register-level interface that enables a host controller for USB or IEEE 1394 hardware to communicate with a host controller driver in software. The driver software is typically provided with an operating system of a personal computer, but may also be implemented by application-specific devices such as a microcontroller.
x87 is a floating-point-related subset of the x86 architecture instruction set. It originated as an extension of the 8086 instruction set in the form of optional floating-point coprocessors that work in tandem with corresponding x86 CPUs. These microchips have names ending in "87". This is also known as the NPX. Like other extensions to the basic instruction set, x87 instructions are not strictly needed to construct working programs, but provide hardware and microcode implementations of common numerical tasks, allowing these tasks to be performed much faster than corresponding machine code routines can. The x87 instruction set includes instructions for basic floating-point operations such as addition, subtraction and comparison, but also for more complex numerical operations, such as the computation of the tangent function and its inverse, for example.
Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology, that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support.
The Vortex86 is a computing system-on-a-chip (SoC) based on a core compatible with the x86 microprocessor family. It is produced by DM&P Electronics, but originated with Rise Technology.
A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware.
Bonnell is a CPU microarchitecture used by Intel Atom processors which can execute up to two instructions per cycle. Like many other x86 microprocessors, it translates x86 instructions into simpler internal operations prior to execution. The majority of instructions produce one micro-op when translated, with around 4% of instructions used in typical programs producing multiple micro-ops. The number of instructions that produce more than one micro-op is significantly fewer than the P6 and NetBurst microarchitectures. In the Bonnell microarchitecture, internal micro-ops can contain both a memory load and a memory store in connection with an ALU operation, thus being more similar to the x86 level and more powerful than the micro-ops used in previous designs. This enables relatively good performance with only two integer ALUs, and without any instruction reordering, speculative execution or register renaming. A side effect of having no speculative execution is invulnerability against Meltdown and Spectre.
LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals. The earliest LPC series were based on the Intel 8-bit 80C51 core. As of February 2011, NXP had shipped over one billion ARM processor-based chips.
Intel Galileo is the first in a line of Arduino-certified development boards based on Intel x86 architecture and is designed for the maker and education communities. Intel released two versions of Galileo, referred to as Gen 1 and Gen 2. These development boards are sometimes called "Breakout boards".
The Intel Edison is a computer-on-module that was offered by Intel as a development system for wearable devices and Internet of Things devices. The system was initially announced to be the same size and shape as an SD card and containing a dual-core Intel Quark x86 CPU at 400 MHz communicating via Bluetooth and Wi-Fi. A later announcement changed the CPU to a 500 MHz Silvermont dual-core Intel Atom CPU, and in September 2014 a second version of Edison was shown at IDF, which was bigger and thicker than a standard SD card.
The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2010. The microcontroller board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. The board has 14 digital I/O pins, 6 analog I/O pins, and is programmable with the Arduino IDE, via a type B USB cable. It can be powered by a USB cable or a barrel connector that accepts voltages between 7 and 20 volts, such as a rectangular 9-volt battery. It has the same microcontroller as the Arduino Nano board, and the same headers as the Leonardo board. The hardware reference design is distributed under a Creative Commons Attribution Share-Alike 2.5 license and is available on the Arduino website. Layout and production files for some versions of the hardware are also available.
The ESP8266 is a low-cost Wi-Fi microcontroller, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.
ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa LX7 dual-core microprocessor or a single-core RISC-V microprocessor and includes built-in antenna switches, RF balun, power amplifier, low-noise receive amplifier, filters, and power-management modules. ESP32 is created and developed by Espressif Systems, a Chinese company based in Shanghai, and is manufactured by TSMC using their 40 nm process. It is a successor to the ESP8266 microcontroller.
RP2040 is a 32-bit dual ARM Cortex-M0+ microcontroller integrated circuit by Raspberry Pi Ltd. In January 2021, it was released as part of the Raspberry Pi Pico board.