# NEC V20

El NEC V20 (μPD70108) es un microprocesador fabricado por NEC Corporation. Fue desarrollado utilizando ingeniería inversa y es compatible pin a pin con el microprocesador Intel 8088, con un conjunto de instrucciones compatible con el Intel 80186. El V20 fue lanzado en 1982, y el V30 en 1983.
El chip tiene aproximadamente 29.000 transistores y la frecuencia de reloj se sitúa entre 8 MHz y 10 MHz (16 en modelos posteriores). El diseño del NEC V20 fue más eficiente que el del 8088 gracias a lo cual podía funcionar un 30% más rápido a la misma velocidad de reloj, dependiendo de la aplicación. La característica principal que hizo que funciona más rápido fue que tenía hardware para multiplicación, mientras que los chips de Intel realizaban la multiplicación por medio del software de microcódigo.
Sony también produjo este microprocesador bajo licencia de NEC como el V20H (Sony CXQ70108).

## Usos

El NEC V20 fue utilizado en versiones "turbo" de algunos clones de PC, como el Copam PC-401 TURBO y el NEC PC-9801VM, la serie de laptops Tandy 1110, el Epson PX-16, en la PDA Casio PV-S450 y en el palmtop Hewlett-Packard HP 95LX.

## Características

Una característica inusual del NEC V20 es que añade un modo de emulación del Intel 8080, en el que puede ejecutar programas escritos para el procesador Intel 8080. Las instrucciones adicionales BRKEM en modo 8086 (NEC utiliza una notación diferente para las instrucciones que Intel y BRK en notación NEC = INT en notación Intel), y RETEM y CALLN en modo 8080 se utilizan para entrar y salir del modo de emulación. Algunos programas pueden ejecutar programas CP/M-80 (basados en código 8080) en una máquina MS-DOS: V2080 CPMulator (más tarde ZRUN) de Michael Day y 22nice de SYDEX.
Otra característica inusual es la existencia de varias familias de instrucciones únicas. Las instrucciones ADD4S, SUB4S, CMP4S son capaces de sumar, restar y comparar grandes números decimales codificados en binario almacenados en la memoria. Las instrucciones ROL4 y ROR4 giran nibbles. Otra familia consiste en las instrucciones TEST1, SET1, CLR1, NOT1. Estas instrucciones prueban, fijan, limpian e invierten los bits individuales, pero son mucho menos eficientes que los equivalentes posteriores del Intel 80386 BT, BTS, BTR y BTC, ni son compatibles sus codificaciones. Hay dos instrucciones para extraer e insertar campos de bits de longitudes arbitrarias (EXT, INS).Y, por último, dos prefijos de repetición adicionales, REPC y REPNC, que modifican las originales REPE y REPNE y preparan una cadena de bytes de palabras para ser escaneados (con instrucciones SCAS y CMPS) mientras menos o no menos.

## Patillaje

Pines del NEC V20. Las líneas del bus de direcciones se indican en rojo, las del bus de datos en azul y las del bus de control en verde. Las líneas del bus de energía se ven en negro. El procesador multiplexa en tiempo el bus de direcciones, con el bus de datos y de control.

### Pines del NEC V20
## Versiones

* NEC V25 es la versión microcontrolador del NEC V20.
** NEC V25HS (μPD79011) es un V25 que incluye un RTOS RX116
** NEC V25+ (μPD70325) versión de alta velocidad del V25
* NEC V20HL (μPD70108H) y NEC V30HL (μPD70116H) son versiones de alta velocidad (hasta 16MHz) y bajo consumo.
* NEC V30 (μPD70116) es una versión del NEC V20 compatible pin a pin con el bus de datos de 16 bits del procesador Intel 8086. Soporta también el modo de emulación del 8080. El V30 fue utilizado en la centralita telefónica digital GTD-5 EAX Class 5 como actualización de mejora del rendimiento para el complejo procesador, a finales de 1980. También es utilizado en los Psion Series 3/Acorn PocketBook, los Amstrad PPC, el NEC PC-9801 (inicialmente lanzado en 1982), los Olivetti PCS 86 y Olivetti M111, la tarjeta PC Transporter de Applied Engineering para los Apple II (permitía ejecutar MS-DOS en un equipo con unidad de disquete), tarjetas equivalentes para los Sharp X68000, en el SuperCharger de BetaSystems AG para los Atari ST, la videoconsola portátil WonderSwan, y en varias máquinas recreativas (especialmente las fabricadas por Irem) a finales de 1980.
* NEC V33 es una versión más adelantada del V30 que tiene separado el bus de datos y direcciones y ejecuta todas las instrucciones con wired logic (lógica cableada, es decir, hardware) en vez de microcódigos haciéndolo el doble de rápido que un V30 para la misma frecuencia del reloj. El V33 tiene un rendimiento equivalente al Intel 80286. Ofrece además un método para expandir la memoria a 16 Megabytes. Tiene 2 instrucciones adicionales (BRKXA y RETXA) para soportar el modo de direccionamiento extendido. No soporta el modo de emulación 8080.
* NEC V33A (μPD70136A) se diferencia del NEC V33 en que posee números de vector de interrupción compatible con los procesadores Intel 80x86.
* NEC V35 (μPD70330) es la versión microcontrolador del NEC V30. Tiene un bus de datos externo de 16 bits.
** NEC V35HS (μPD79021) es un V35 que incluye un RTOS RX116
** NEC V35+ (μPD70335) versión de alta velocidad del V35
* NEC V40 (μPD70208) es una versión embebida del V20 que integra además una UART compatible Intel 8251, un Intel 8253 (Temporizador programable de intervalos) y un Intel 8255 (Programmable Peripheral Interface, utilizado para controlar el puerto paralelo). Se utilizó en el Olivetti Prodest PC 1 y el Olivetti M200.
* NEC V40HL (μPD70208H) version de alta velocidad y bajo voltaje del V40
* NEC V41 (μPD70270) NEC V51 (μPD70280) integran un núcleo V30HL y controladores de periféricos compatibles IBM Personal Computer XT: controlador de puerto paralelo de impresora Intel 8255, Temporizador programable de intervalos Intel 8254, Controlador programable de interrupciones Intel 8259, controlador DMA Intel 8237 y controlador de teclado Intel 8042. Integra también un controlador de DRAM. El V41 fue utilizado en el Olivetti Quaderno.
* NEC V50 (μPD70216) es una versión embebida del V30 con bus de datos de 16-bit. Es la CPU principal del Korg M1.
* NEC V50HL (μPD70216H) versión de alta velocidad y bajo voltaje del V50
* NEC V53 (μPD70236) integra un núcleo V33 con cuatro canales DMA (μPD71087/i8237), UART (μPD71051/i8251), tres relojes/contadores (μPD71054/Intel 8253) y un Controlador programable de interrupciones (μPD71059/Intel 8259).
* NEC V53A (μPD70236A) como el V53 pero con núcleo V33A.
* NEC V55PI (μPD70433)
A partir del NEC V60, NEC abandona el diseño basado en x86, pero sigue licenciando su lógica a terceros, como Vadem (diseño hoy soportado por Amphus)
* El Vadem VG230 es una plataforma PC de un solo chip. Sus prestaciones son muy similares a las del Olivetti Quaderno original, por lo que es muy posible que sea un núcleo NEC V41. El VG230 contiene un núcleo del NEC V30HL a 16 MHz, lógica PC/XT, controlador LCD (compatible CGA/AT&T640x400) con soporte de pantalla táctil, lector de la matriz del teclado, controlador de dos PC Card 2.1, soporte de EMS 4.0 por hardware hasta 64 MB, y controladores de reloj, PIC, DMA, UART y RTC. Fue utilizado en los HP OmniGo 100 y 120, y en el IBM Simon (para algunos, el primer teléfono inteligente).
* El mejorado Vadem VG330 contiene un núcleo del NEC V30MX a 32 MHz y lógica compatible PC/AT con dos PICs, controlador LCD (640x480), lector de la matriz del teclado, controlador PC Card ExCA 2.1 y puerto de comunicaciones IrDA.