El Vortex86 es un sistema informático en un chip (SoC) basado en un núcleo compatible con la familia de microprocesadores x86 . Es producido por DM&P Electronics, pero su origen está en Rise Technology .
Vortex86 pertenecía anteriormente a SiS , que obtuvo el diseño básico de Rise Technology . [1] SiS lo vendió a DM&P Electronics [2] en Taiwán .
Antes de adoptar la serie Vortex86, DM&P fabricó el ALi M6117D , que contiene el núcleo x86 derivado del VMT386SX+ de VM Technology, un SoC de 25 a 40 MHz compatible con Intel 386SX . [3] [4]
Las CPU Vortex86 implementan la arquitectura IA-32 , pero las instrucciones que se implementan varían según el modelo. Vortex86SX [5] y las primeras versiones de Vortex86 [ cita requerida ] no tienen una unidad de punto flotante (FPU). Cualquier código que se ejecute en i586 pero que no use instrucciones de punto flotante se ejecutará en estos modelos. Cualquier código i586 se ejecutará en Vortex86DX y posteriores. Algunos núcleos de Linux (por opción de tiempo de compilación) emulan la FPU en cualquier CPU que no tenga una, por lo que un programa que use instrucciones de punto flotante de nivel i586 funcionará en cualquier CPU de la familia Vortex86 bajo dicho núcleo, aunque más lentamente en un modelo sin FPU. Los modelos más avanzados tienen FPU que tienen instrucciones de nivel i686, como FUCOMI [ cita requerida ] .
El código diseñado para i686 puede fallar en algunos modelos porque carecen de una instrucción de movimiento condicional (CMOV) . Los compiladores que solicitan optimizar el código para una CPU más avanzada (por ejemplo, el compilador GNU con su opción -march=i686 ) generan código que utiliza CMOV. Los sistemas Linux diseñados para ejecutarse en i686 generalmente no son compatibles con estos modelos Vortex86 porque la biblioteca C de GNU, cuando se crea para i686, utiliza una instrucción CMOV en su función strcmp en lenguaje ensamblador, que su cargador dinámico ( ld.so ) utiliza. Por lo tanto, ningún programa que utilice bibliotecas compartidas puede ejecutarse.
A continuación se muestran las propiedades de una CPU original Vortex86 informadas por la herramienta del kernel de Linux ./proc/cpuinfo
Tenga en cuenta que esta CPU es una versión posterior con una FPU.
procesador: 0ID del vendedor: SiS SiS SiSFamilia de CPU: 5modelo: 0Nombre del modelo: 05/00paso a paso: 5Procesador MHz: 199,978fdiv_bug: nohlt_bug: nof00f_bug: nocoma_bug : nofpu: sifpu_exception: sínivel de CPU: 1wp: sibanderas: fpu tsc cx8 mmx arribabogomips: 399,95Tamaño de descarga: 32alineación de caché: 32Tamaños de dirección: 32 bits físicos, 32 bits virtualesGestión de energía:
DM&P mantuvo una distribución Linux integrada personalizada para utilizar las características de los SoC . [6] Otros sistemas operativos pueden funcionar dependiendo del modelo de SoC, incluidos varios sistemas RTOS como QNX y VxWorks , distribuciones Linux, [7] FreeBSD [8] o varias versiones de sistemas Microsoft Windows como Windows Embedded Compact o Windows IoT . [9]
La capacidad de identificar procesadores Vortex86 se agregó a Linux 5.16, [10] lanzado en enero de 2022.
El Vortex86 (M6127D) es un sistema en chip (SoC) SiS 551 rebautizado. [11] El núcleo de la CPU se deriva del Rise mP6 , que tiene tres canales de números enteros y MMX y predicción de bifurcaciones . [12]
Presentado en febrero de 2007, [13] el Vortex86SX es un sistema en chip (SoC) compatible con x86 con puente norte y sur integrado en un proceso de 0,13 micrones en un paquete BGA de 581 bolas de 27 x 27 mm . [14] [15]
El núcleo de la CPU normalmente tiene una frecuencia de reloj de 300 MHz y es compatible con el conjunto de instrucciones 486SX . Tiene una secuencia de seis etapas con una caché L1 de 16 KB de datos y 16 KB de instrucciones con escritura directa , pero, a diferencia del Vortex86, carece de caché L2 y de una FPU . El controlador de memoria permite un acceso de 16 bits a SDRAM de hasta 128 MB a 133 MHz y DDR2 de hasta 256 MB a 166 MHz.
El SoC incluye
A diferencia del Vortex86 original, no integra controladores de vídeo o audio.
Presentado en agosto de 2008, [13] el Vortex86DX conserva el mismo paquete BGA que el SX y es compatible con pines. [16] Está construido sobre un proceso de 90 nm. [17] [18]
El núcleo de la CPU tiene una frecuencia de reloj de 600 MHz a 1 GHz (2,02 W a 800 MHz [19] ) y mejora el SX con un caché L1 de 4 vías de 16 KB de datos + 16 KB de instrucciones, agrega un caché L2 de 4 vías de 256 KB, en modo de escritura simultánea o de escritura diferida, y una FPU . El controlador de memoria elimina la capacidad de usar SDRAM pero aumenta la cantidad y velocidad de la memoria DDR2 que puede manejar a 1 GB y 333 MHz.
El SoC agrega la capacidad de funcionar como un cliente USB 1.1 en 1 puerto y aumenta la capacidad flash incorporada a 2 MB.
El PDX-600 es una versión del Vortex86DX que se diferencia únicamente en el número de puertos RS-232 (tres en lugar de cinco) y no tiene controladores I²C ni servo , por lo que está orientado más al mercado integrado que al industrial. Los netbooks similares al Belco 450R utilizan este chip. [20]
El Vortex86MX utiliza un paquete BGA de 720 bolas de 31 x 31 mm más grande, todavía en un proceso de 90 nm. [21] El núcleo de la CPU mejora el DX al agregar predicción de bifurcación, optimización de acceso a caché [22] e instrucciones MMX . [23] [24] [25] El controlador de memoria puede manejar hasta 1 GB de memoria DDR2 a 400 MHz.
El SoC elimina la conexión del bus ISA pero añade una GPU 2D compatible con VGA , con memoria DDR2 independiente y un controlador de audio HD . Tiene solo tres puertos FIFO UART a hasta 460,8 kbit/s.
La versión para el consumidor se conoce como PMX-1000 . [26] Los modelos actuales del Gecko Edubook utilizan el Xcore86, una nueva versión del Vortex86MX. [26]
Presentado en junio de 2010, el Vortex86MX+ conserva el mismo encapsulado BGA y núcleo de CPU que el MX. [27] El controlador de memoria permite un acceso más amplio de 32 bits a DDR2 hasta 1 GB, aún a 400 MHz. La GPU integrada cambia a UMA , eliminando el requisito de memoria de video separada. Los tres puertos FIFO UART pueden operar a velocidades de datos de hasta 115,2 kbit/s.
Presentado en mayo de 2012, el Vortex86DX2 conserva el mismo encapsulado BGA, núcleo de CPU y GPU que el MX+. El controlador de memoria permite acceso de 32 bits a DDR2 de hasta 2 GB a 400 MHz. [28]
El SoC abandona la capacidad PCI convencional y agrega
Vortex86EX tiene un caché L1 bidireccional de 32 KB con escritura directa, un caché L2 bidireccional de 128 KB con escritura directa/escritura diferida, interfaz de bus PCI-e, DDR3 de 300 MHz, controlador ROM, IPC (controladores periféricos internos con DMA y temporizador/contador de interrupciones incluidos), Fast Ethernet, FIFO UART, host USB 2.0 y controlador ATA.
El paquete es un único paquete TFBGA de 288 pines.
Vortex86DX3 tiene una CPU compatible con i686 de doble núcleo de 1.0 GHz. [29] [30] Tiene un I-Cache de 32K de ocho vías, un D-Cache de 32K de ocho vías, un caché L2 de 512 KB de cuatro vías con una política de escritura simultánea o diferida, capacidad para usar hasta 2 GB de RAM DDR3, una interfaz de bus PCI-e, Ethernet de 100 Mbit/s, UART FIFO, un host USB 2.0, GPU integrada, un controlador ATA en el canal primario y un controlador SATA de 1.5 Gbit/s (un puerto) en el canal secundario.
El paquete es un único paquete BGA de 720 pines. [31]
Vortex86EX2 tiene dos núcleos de CPU maestro/esclavo asimétricos. [32] El núcleo maestro funciona a 600 MHz, tiene 16K I-Cache, 16K D-Cache y un caché L2 de cuatro vías de 128 KB con una política de escritura simultánea o de escritura diferida. El núcleo esclavo funciona a 400 MHz y también tiene 16 KB I-Cache, 16 KB D-Cache, pero no tiene caché L2. Ambos tienen una FPU incorporada. La capacidad máxima de RAM DDR3 es de 2 GB. También puede utilizar memoria ECC . Se produce utilizando el proceso de fabricación de 65 nm [33] y utiliza el paquete LFBGA-441 de 19x19 mm.