Intel Quark


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. Quark processors, while slower than Atom processors, are much smaller and consume less power. They lack support for SIMD instruction sets and only support embedded operating systems. Quark powers the Intel Galileo developer microcontroller board. However, in 2016 Arduino released the that includes an Intel Quark SoC. The CPU instruction set is the same as a Pentium CPU.
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.
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.
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. 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.

List of Intel Quark processors

"Lakemont" (32 nm)

The name Lakemont has been used in reference to the processor core in multiple Quark-series processors.

"Clanton"

"Silver Butte"

"Mint Valley"

"Atlas Peak"

Segfault bug

Intel Quark SoC X1000 contains a bug #71538 that "under specific circumstances" results in a type of crash known as a segfault. The workaround implemented by Intel is to omit LOCK prefixes in the compiled code. 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.