Vortex86

Summary

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.

Vortex86DX

History edit

 
PC/104 module with DM&P M6117D

Vortex86 previously belonged to SiS, which got the basic design from Rise Technology.[1] SiS sold it to DM&P Electronics[2] in Taiwan.

Before adopting the Vortex86 series, DM&P manufactured the M6117D, an Intel 386SX compatible, 25–40 MHz SoC.[3][4]

CPU edit

Vortex86 CPUs implement the IA-32 architecture but which instructions are implemented varies depending on the model. Vortex86SX[5] and the early versions of Vortex86[citation needed] do not have a floating point unit (FPU). Any code that runs on i586 but does not use floating point instructions will run on these models. Any i586 code will run on Vortex86DX and later. Some Linux kernels (by build-time option) emulate the FPU on any CPU that is missing one, so a program that uses i586-level floating point instructions will work on any Vortex86 family CPU under such a kernel, albeit more slowly on a model with no FPU. The more advanced models have FPUs that have i686-level instructions, such as FUCOMI[citation needed].

Code intended for i686 may fail on some models because they lack a Conditional Move (CMOV) instruction. Compilers asked to optimize code for a more advanced CPU (for example the GNU Compiler with its -march=i686 option) generate code that uses CMOV. Linux systems intended to run on i686 are generally not compatible with these Vortex86 models because the GNU C Library, when built for i686, uses a CMOV instruction in its assembly language strcmp function, which its dynamic loader (ld.so) uses. Hence, no program that uses shared libraries can execute.

Below are the properties of a Vortex86 original CPU reported by the Linux kernel tool /proc/cpuinfo.

Note that this CPU is a later version with an FPU.

processor       : 0
vendor_id       : SiS SiS SiS
cpu family      : 5
model           : 0
model name      : 05/00
stepping        : 5
cpu MHz         : 199.978
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu tsc cx8 mmx up
bogomips        : 399.95
clflush size    : 32
cache_alignment : 32
address sizes   : 32 bits physical, 32 bits virtual
power management:

Software Compatibility edit

DM&P maintained an embedded Linux distribution customized to use the SoCs features.[6] Other operating systems may work depending on the SoC model, including various RTOS systems such as QNX and VxWorks, Linux distributions,[7] FreeBSD[8] or various versions of Microsoft Windows systems such as Windows Embedded Compact or Windows IoT.[9]

The ability to identify Vortex86 processors was added to Linux 5.16,[10] released in January 2022.

Versions edit

Vortex86 original edit

The Vortex86 (M6127D) is a rebadged SiS 551 system-on-chip (SoC).[11] The CPU core is derived from the Rise mP6, which has three integer and MMX pipelines and branch prediction.[12]

Vortex86SX edit

Introduced in February 2007,[13] the Vortex86SX is an x86-compatible System-on-chip (SoC) with built-in north and south bridge on a 0.13 micron process in a 27x27 mm 581-ball BGA package.[14][15]

The CPU core is typically clocked at 300 MHz and is compatible with the 486SX instruction set. It has a six-stage pipeline with a direct-mapped write-through 16 KB Data + 16 KB Instruction L1 cache but, unlike the Vortex86, lacks L2 cache and an FPU. The memory controller allows 16-bit wide access to SDRAM up to 128 MB at 133 MHz and DDR2 up to 256 MB at 166 MHz.

The SoC includes

  • PCI 2.1 interface at 33 MHz
  • ISA bus interface
  • ATA controller with 2 channels at Ultra-DMA 100
  • Fast Ethernet MAC
  • USB 2.0 host with 4 ports
  • 5 FIFO UART ports compatible with 16C550/16C552 at up to 460.8 kbps
  • GPIO with 40 pins
  • Embedded 256 KB flash memory

Unlike the original Vortex86, it does not integrate video or audio controllers.

Vortex86DX edit

Introduced in August 2008,[16] the Vortex86DX retains the same BGA package as the SX and is pin-compatible.[17] It is built on a 90 nm process.[18][19]

The CPU core is clocked at 600 MHz to 1 GHz (2.02 W @ 800 MHz [20]) and improves on the SX with a 4-way 16 KB Data + 16 KB Instruction L1 cache, adds a 4-way 256 KB L2 cache, in write-through or write-back mode, and an FPU. The memory controller drops the ability to use SDRAM but increases the amount and speed of DDR2 memory it can drive to 1GB and 333 MHz.

The SoC adds the ability to function as a USB 1.1 client on 1 port and increases the embedded flash capacity to 2 MB.

The PDX-600 is a version of the Vortex86DX that differs only in the number of RS-232 ports (three instead of five) and has no I²C and servo controllers, thus targeting more the embedded than the industrial market. Netbooks similar to the Belco 450R use this chip.[21]

Vortex86MX edit

The Vortex86MX uses a larger 31x31 mm 720-ball BGA package, still on a 90 nm process.[22] The CPU core improves on the DX by adding branch prediction, cache-access optimisation[23] and MMX instructions.[24][25][26] The memory controller can drive up to 1 GB of DDR2 memory at 400 MHz.

The SoC drops ISA bus attachment but adds a VGA-compatible 2D GPU, with separate DDR2 memory, and a HD Audio controller. It has only three FIFO UART ports at up to 460.8 kbps.

The consumer grade version is known as the PMX-1000.[27] Current models of the Gecko Edubook use the Xcore86, a rebadge of the Vortex86MX.[27]

Vortex86MX+ edit

Introduced in June 2010, the Vortex86MX+ retains the same BGA package and CPU core as the MX.[28] The memory controller allows wider 32-bit access to DDR2 up to 1 GB, still at 400 MHz. The integrated GPU switches to UMA, removing the requirement for separate video memory. The three FIFO UART ports can operate at data rates up to 115.2 kbps.

Vortex86DX2 edit

Introduced in May 2012, the Vortex86DX2 retains the same BGA package, CPU core, and GPU as the MX+. The memory controller allows 32-bit access to DDR2 up to 2 GB at 400 MHz.[29]

The SoC drops conventional PCI capability and adds

  • PCI Express 1.0 interface
  • SATA with one port at 1.5 Gbps
  • nine FIFO UART ports compatible with 16C550/16C552 at up to 6 Mbps
  • ISA bus interface
  • GPIO with 88 pins
  • Motor control interface with 3 groups of controllers, four controllers per group

Vortex86EX edit

Vortex86EX has a 32KB write through 2-way L1 cache, 128KB write through/write back 2-way L2 cache, PCI-e bus interface, 300 MHz DDR3, ROM controller, IPC (Internal Peripheral Controllers with DMA and interrupt timer/counter included), Fast Ethernet, FIFO UART, USB2.0 Host and ATA controller.

The package is a single 288-pin TFBGA-package.

Vortex86DX3 edit

Vortex86DX3 has a 1.0 GHz dual-core i686-compatible CPU.[30][31] It has an eight-way 32K I-Cache, an eight-way 32K D-Cache, a four-way 512 KB L2 cache with a write-through or write-back policy, ability to use up to 2GB of DDR3 RAM, a PCI-e bus interface, 100 Mbit/s Ethernet, FIFO UART, a USB 2.0 host, integrated GPU, an ATA controller at Primary Channel, and a SATA 1.5Gbit/s controller (one port) at Secondary Channel.

The package is a single 720-pin BGA-package.[32]

Vortex86EX2 edit

Vortex86EX2 has two asymmetrical master/slave CPU cores.[33] The master core runs at 600 MHz, has 16K I-Cache, 16K D-Cache, and four-way 128 KB L2 cache with a write-through or write-back policy. The slave core operates at 400 MHz and also has 16KB I-Cache, 16KB D-Cache, but has no L2 cache. Both have a built-in FPU. Maximum DDR3 RAM capacity is 2GB. It can also use ECC memory. It is produced using the 65 nm manufacturing process[34] and uses the 19x19 mm LFBGA-441 package.

See also edit

References edit

  1. ^ Cebit 2007: x86 Minisystem mit Vortex86SX[permanent dead link] (german)
  2. ^ Vortex86 Envision Embedded Design with Windows Embedded Technologies (archived copy)
  3. ^ M6117D Data Sheet
  4. ^ "M6117D overview". Archived from the original on 2009-03-03. Retrieved 2009-04-09.
  5. ^ DM&P Vortex86SX FAQ
  6. ^ X-Linux
  7. ^ Vortex86 Series Linux Support List
  8. ^ VEX2-6427 Datasheet
  9. ^ Vortex86 Series Windows Support List
  10. ^ "Vortex86 Processors detection in new release Linux 5.16".
  11. ^ SiS55x Embedded x86 Processors
  12. ^ Vortex86 Data Sheet
  13. ^ "Vortex86".
  14. ^ Vortex86SX documentation
  15. ^ Vortex86SX Data Sheet
  16. ^ "Vortex86".
  17. ^ "X86 system-on-chip adds VGA graphics".
  18. ^ Vortex86DX technical resource
  19. ^ Vortex86DX Data Sheet
  20. ^ Vortex86DX overview (archived copy)
  21. ^ engadget - "The world's cheapest laptop"
  22. ^ Vortex86MX technical resource
  23. ^ https://forum.robosavvy.com/viewtopic.php?p=31612#p31612
  24. ^ Thomas, Alexander (November 2012). "BTplug Review". Dr. Lex' Site. Retrieved 2012-02-13.
  25. ^ Kauler, Barry (2010-01-16). "Xcore86 CPU in Gecko Edubook". Barry's Blog. Archived from the original on 2015-02-13. Retrieved 2015-02-13.See blog comments for more information.
  26. ^ LoneRifle (2010-01-22). "CPU Features". Flickr. Retrieved 2015-02-13.
  27. ^ a b Angel, Jonathan (2008-12-11). "X86 system-on-chip adds VGA graphics". LinuxForDevices. Archived from the original on 2012-09-12. Retrieved 2009-12-11.
  28. ^ Vortex86MX+ product page
  29. ^ Vortex86DX2 product page
  30. ^ ICOP OS support list
  31. ^ Vortex86DX3 product overview
  32. ^ "Vortex86DX3 is a New x86 SoC for Embedded Systems - CNX Software". 9 April 2015.
  33. ^ Vortex86EX2 product overview
  34. ^ ICOP Vortex86 SoC website

External links edit

  • DM&P Electronics official website
  • Vortex86 series comparison sheet
  • Change CPU speed in DOS, Linux, Windows