Intel Quark

Last updated
Intel Galileo-board with Quark-processor Embedded World 2014 Intel Galileo 01.jpg
Intel Galileo-board with Quark-processor

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]

Contents

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]

History

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]

List of processors

"Lakemont" (32 nm)

The name Lakemont has been used in reference to the processor core in multiple Quark-series processors. [12] :4 [13] :42

"Clanton"

Source: [14]

  • All models support i586 instruction set, with x87 FPU and NX bit
  • Temperature range: -40 °C to +85 °C for X10x1 models, 0 °C to +70 °C, for X10x0 models
  • Secure boot supported on X102x models
  • DDR3 controller with one 16-bit channel
  • Two PCI-Express 2.0 controllers, with 1 lane each.
  • USB Controller with two USB 2.0 Host ports and one USB 2.0 device port
  • Two 10/100 MBit Ethernet controllers
  • Integrated memory card reader supporting SDIO 3.0, eMMC 4.41 and SD 3.0
  • Serial I/O supporting SPI, UART (serial port) and I2C

(The L2 cache column shows the size of the L1 cache.)

ModelsSpec
number
Cores Clock rate GPU
frequency
L2
cache
I/O bus Memory Voltage TDP Socket Release datePart
number(s)
Release
price (USD)
Quark X1000
  • SR1BY (A0)
1400 MHz16 KBPCIeDDR3-8000.95–1.1 V
2.2 W
  • FC-BGA11E
Q4'13
  • DH8066101538300
$9.63
Quark X1001
  • SR1VB (A0)
1400 MHz16 KBPCIeDDR3-8000.95–1.1 V
2.2 W
  • FC-BGA11E
Q2'14
  • DHQ1ET
$11.77
Quark X1010
  • SR1BZ (A0)
1400 MHz16 KBPCIeDDR3-800 (ECC)0.95–1.1 V
2.2 W
  • FC-BGA11E
Q1'14
  • DH8066101555100
$10.16
Quark X1011
  • SR1VC (A0)
1400 MHz16 KBPCIeDDR3-800 (ECC)0.95–1.1 V
2.2 W
  • FC-BGA11E
Q2'14
  • DHQ1ECCET
$12.31
Quark X1020
  • SR1VW (A0)
1400 MHz16 KBPCIeDDR3-800 (ECC)0.95–1.1 V
2.2 W
  • FC-BGA11E
Q2'14
  • DHQ1ECCSECCTS1
$11.45
Quark X1020D
  • SR1BX (A0)
1400 MHz16 KBPCIeDDR3-800 (ECC)0.95–1.1 V
2.2 W
  • FC-BGA11E
Q1'14
  • DH8066101531900
$10.70
Quark X1021
  • SR1WH (A0)
1400 MHz16 KBPCIeDDR3-800 (ECC)0.95–1.1 V
2.2 W
  • FC-BGA11E
Q2'14
  • DHQ1ECCSECETS1
$13.39
Quark X1021D
  • SR1VA (A0)
1400 MHz16 KBPCIeDDR3-800 (ECC)0.95–1.1 V
2.2 W
  • FC-BGA11E
Q2'14
  • DHQ1ECCSECET
$12.85

"Silver Butte"

  • Implements only a limited subset of the 32-bit x86 instruction set (e.g. segmentation, BCD/string instructions, AF/PF flags, XCHG are not supported) [15]
ModelsSpec
number
Cores Clock rate GPU
frequency
L2
cache
I/O bus Memory Voltage TDP Socket Release datePart
number(s)
Release
price (USD)
Quark D1000
  • SLKMJ (B1)
132 MHz AHB-Lite, APB [16] :30 eSRAM 1.62–3.63 V
  • 0.025 W
Q3'15
DMNIAD01SLVBT
$2.54

"Mint Valley"

  • Supports i586 instruction set, without x87.
ModelsSpec
number
Cores Clock rate GPU
frequency
L2
cache
I/O bus Memory Voltage TDP Socket Release datePart
number(s)
Release
price (USD)
Quark D2000
  • SR2KF (A0)
132 MHzAHB-Lite, [13] :72APB [13] :96eSRAM1.62–3.63 V
0.025 W
  • QFN40
Q3'15
FND2000
$2.54

"Atlas Peak"

  • Supports i586 instruction set, without x87.
ModelsSpec
number
Cores Clock rate GPU
frequency
L2
cache
I/O bus Memory Voltage TDP Socket Release datePart
number(s)
Release
price (USD)
Quark SE C1000
  • SR2T6 (A0)
  • SR2TJ (A1)
132 MHz8 KBAHB-Lite, APBeSRAM1.8–3.3 V
0.025 W
  • VFBGA144
Q4'15
LMCQ1000
$10.32

Segfault bug

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]

See also

Related Research Articles

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.

<span class="mw-page-title-main">Intel 80186</span> 16-bit microcontroller

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 Family of instruction set architectures

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

<span class="mw-page-title-main">MCS-51</span> Single chip microcontroller series by Intel

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.

<span class="mw-page-title-main">AVR microcontrollers</span> Family of microcontrollers

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 64-bit version of x86 architecture

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.

<span class="mw-page-title-main">Vortex86</span> X86-compatible system-on-a-chip

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.

<span class="mw-page-title-main">Single-board microcontroller</span> Microcontroller built onto a single printed circuit board

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.

<span class="mw-page-title-main">NXP LPC</span> Family of 32-bit microcontroller integrated circuits

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.

<span class="mw-page-title-main">Intel Galileo</span> Arduino-certified single-board computer

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

<span class="mw-page-title-main">Intel Edison</span> Computer-on-module by Intel

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.

<span class="mw-page-title-main">Arduino Uno</span> Microcontroller board

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.

<span class="mw-page-title-main">ESP8266</span> System-on-a-chip microcontroller model with Wi-Fi

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.

<span class="mw-page-title-main">ESP32</span> Low-cost, low-power SoC microcontrollers with Bluetooth and Wi-Fi

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.

<span class="mw-page-title-main">RP2040</span> ARM-architecture microcontroller by the Raspberry Pi Foundation

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.

References

  1. 1 2 "Product Change Notification 116715-00" (PDF). Intel Quality Document Management System. Intel. 2019-01-18. Archived (PDF) from the original on 2021-04-18. Retrieved 2020-09-29.
  2. Turley, Jim (October 16, 2013). "Intel Quark Provides Spin, Charm, and Strange New Low-end x86 MCU Line Emerging from the Lab". EEJournal. Archived from the original on January 8, 2014.
  3. "Intel® Galileo Datasheet". Archived from the original on 2013-10-12. Retrieved 2013-10-07.
  4. "Arduino 101". Archived from the original on 2020-09-29. Retrieved 2018-03-23.
  5. JavaFX 9 by Example, Chapter on Arduino
  6. "Intel Quark SoC X1000 Core - Developer's Manual". Archived from the original on 2014-10-19. Retrieved 2014-10-19.
  7. Flaherty, Nick (2013-10-07). "Intel Tackles SoC With Quark". EETimes. Archived from the original on 29 February 2016. Retrieved 9 October 2013.
  8. Intel® Quark SoC X1000 (16K Cache, 400 MHz) Specifications Archived 2014-01-08 at the Wayback Machine , Intel
  9. Gareth Halfacree (7 January 2014). "Intel unveils Quark-based Edison microcomputer". BitTech. Archived from the original on 2014-01-10. Retrieved 2014-01-07.
  10. "Intel® Curie Module: Unleashing Wearable Device Innovation". Intel. 2015-01-06. Archived from the original on 2015-09-06. Retrieved 12 April 2015.
  11. Shilov, Anton (2019-01-22). "Intel Discontinues Quark SoCs and Microcontrollers". AnandTech . Archived from the original on 2020-11-30. Retrieved 2020-09-29.
  12. Intel Quark SoC X1000 Debug Operations. Intel Corporation. 2014.
  13. 1 2 3 Intel Quark microcontroller D2000. Intel Corporation. 2015.
  14. Intel, Quark SoC X1000 Datasheet, May 2014. Archived on Mar 16, 2022.
  15. Intel, Quark Microcontroller D1000 Programmer's Reference Manual, order no. 332913-02, nov 2015, page 14. Archived on Apr 13, 2021.
  16. Intel Quark Microcontroller D1000 Datasheet. Intel Corporation. 2015. Archived from the original on 2016-02-23. Retrieved 2016-02-15.
  17. "Intel Quark SoC X1000 Software - Release Notes" (PDF). Revision 002. 22 May 2014. p. 21. Archived (PDF) from the original on 1 August 2020. Retrieved 17 February 2020.
  18. "debian-glibc@lists.debian.org: Bug#738575: pthread: segfault in libpthread on Intel Galileo board". Archived from the original on 2021-02-09. Retrieved 2016-11-11.
  19. "#738575 - pthread: Segfault in libpthread on Intel Galileo board - Debian Bug report logs". Archived from the original on 2019-04-17. Retrieved 2014-12-04.