Vortex86

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Vortex86DX

The Vortex86 is a SoC based on an x86 compatible core. It formerly belonged to SiS, which got the basic design from Rise Technology,[1] and was sold to the Taiwanese DM&P Electronics.[2]

Versions[edit]

Vortex86 original[edit]

SiS55x/Rise mP6 or simply Vortex86) – Developed by SiS, three integer and MMX pipelines, branch prediction [3]

Vortex86SX[edit]

300 MHz, 16 KB Data + 16 KB Instruction L1 cache, no FPU, no L2 cache. Can use both SD and DDR2 RAM [4]

Vortex86DX[edit]

600 MHz to 1 GHz (2.02 W @ 800 MHz [5]), 16 KB Data + 16 KB Instruction L1 cache, FPU, 512 KB L2 cache, 16-staged pipeline. Can address up to 1 GiB DDR2 RAM[6][7] The PDX-600 is a version of the Vortex86DX that only differs in the number of RS-232 ports (3 instead of 5) 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.[8]

Vortex86MX[edit]

1 GHz, the CPU core itself hardly differs from the Vortex86DX. This version drops conformance to ISA and integrates a GPU and a HD Audio controller, it also integrates a UDMA/100 IDE controller. The consumer grade version is known as the PMX-1000.[9] Current models of the Gecko Edubook use the Xcore86, a rebadge of the Vortex86MX.[9]

Vortex86MX+[edit]

This has a 32KB write through 2-way L1 cache, 512KB write through/write back 2-way L2 cache, PCI rev. 2.1 32-bit bus interface at 33 MHz, DDR2, 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 720-pin BGA package.

CPU[edit]

The CPU implements the i586 architecture, but the early versions Vortex86 original and Vortex86SX do not have a floating point unit (FPU). Any code that runs on an i486SX CPU without a 487 will run on Vortex86, as will any code that runs on i586 but does not use floating point instructions. 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 that even a program that uses floating point instructions, if it runs under Linux, works on any Vortex86 CPU, albeit slowly.

Code intended for i686 may fail because the CPU lacks a Conditional Move (CMOV) instruction. This is an instruction that combines the effect of a conditional branch and a move 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 runnable on Vortex86 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 even start up.

Technically, CMOV is optional in the i686 architecture. But Intel's i686 product, the Pentium Pro, had it, and consequently things that generate code typically consider CMOV to be available when you ask them to generate code for i686.

Here is what the Linux kernel reports (via /proc/cpuinfo) about the properties of a Vortex86 original CPU. Note that it says an FPU is available, though the CPU does not have one. This reflects the fact that the Linux kernel emulates the 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:

Compatible Components[edit]

DM&P provides an embedded Linux distribution customized to use the SoCs features.[10]

History[edit]

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

See also[edit]

External links[edit]

References[edit]

  1. ^ Cebit 2007: x86 Minisystem mit Vortex86SX (german)
  2. ^ Vortex86 Envision Embedded Design with Windows Embedded Technologies
  3. ^ Vortex86 Data Sheet
  4. ^ Vortex86SX Data Sheet
  5. ^ Vortex86DX overview
  6. ^ Vortex86DX documentation
  7. ^ Vortex86DX Data Sheet
  8. ^ engadget - "The world's cheapest laptop"
  9. ^ 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. 
  10. ^ X-Linux
  11. ^ M6117D Data Sheet
  12. ^ M6117D overview