Intel Quark
# Intel Quark

Intel Quark es una línea de. SoCs y microcontroladores x86 de 32 bits desarrollados por Intel, diseñado para tamaño pequeño y bajo consumo de energía, y dirigido a nuevos mercados incluyendo dispositivos wearable. La línea se presentó en Intel Developer Forum en 2013. Los procesadores Quark, aunque más lentos que los procesadores Atom, son mucho más pequeños y consumen menos energía. No son compatibles con los conjuntos de instrucciones SIMD (como MMX y SSE) y solo admite sistemas operativos embebidos. Quark alimenta la (ahora descontinuada) placa de microcontrolador de desarrollo Intel Galileo. Sin embargo, en 2016 publicó el Arduino (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última)., que incluye una placa SoC Intel Quark. El conjunto de instrucciones del CPU es el mismo que el de los Pentium (P54C/i586).

La primera línea del producto Quark es el mononúcleo 32 nm X1000 SoC, con una frecuencia de reloj de hasta 400 MHz. El sistema incluye varias interfaces, incluyendo PCI Express, UART serial, I²C, Ethernet rápido, USB 2.0, SDIO, Controlador de gestión de la energía y GPIO. Hay 16 kB de SRAM incrustada en chip y un DDR3 integrado.

Un segundo producto de Intel que incluye el núcleo de Quark, el microordenador Intel Edison, se presentó en enero de 2014. Tiene un factor de forma cercano al tamaño de una SD card. Es capaz de establecer redes inalámbricas usando Wi-Fi o Bluetooth.

En enero de 2015, Intel anunció el módulo Intel Curie sub-miniatura para aplicaciones portátiles, basado en un núcleo Quark SE con 80 kB SRAM y 384 kB flash. Tiene el tamaño de un botón. También incluye un acelerómetro de seis ejes, un concentrador de sensores DSP, una unidad Bluetooth de baja energía y un controlador de carga de batería.

## Procesador Intel Quark Lakemont (32 nm)

El nombre Lakemont se ha usado en referencia al núcleo del procesador en múltiples procesadores de la serie $Quark.^{:4}^{:42}$

## Violación de acceso

Intel Quark SoC X1000 contiene un error #71538 que «bajo circunstancias específicas» resulta en un tipo de colisión conocido como fallo de segmentación. La solución implementada por Intel es omitir los prefijos LOCK (no se requiere en los procesadores de un solo subproceso) en el código compilado. Mientras que los sistemas embebidos basados en código fuente como los construidos usando el Proyecto Yocto pueden incorporar esta solución en tiempo de compilación, las distribuciones de Linux de propósito general como Debian resultan profundamente afectadas por el fallo. Esta solución no es fácil de implementar en binarios destinados a soportar multithreading, ya que para funcionar correctamente requieren prefijos LOCK.

