El NEC V20 es un microprocesador que fue diseñado y producido por NEC . Es compatible con pines y con código objeto con Intel 8088 , con una arquitectura de conjunto de instrucciones (ISA) similar a la del Intel 80188 con algunas extensiones. [2] El V20 se introdujo en marzo de 1984. [1] [2]
La matriz del V20 constaba de 63.000 transistores ; más del doble de los 29.000 de la CPU 8088. [1] El chip fue diseñado para un ciclo de trabajo de reloj del 50%, en comparación con el ciclo de trabajo del 33% utilizado por el 8088. [3] El V20 tiene dos buses de datos internos de 16 bits de ancho, lo que permite que se realicen dos transferencias de datos simultáneamente. . [4] Diferencias como esa significaban que un V20 normalmente podía completar más instrucciones en un tiempo determinado que un Intel 8088 ejecutándose a la misma frecuencia. [2]
El V20 fue fabricado con tecnología CMOS de 2 micrones. [5] [3] Las primeras versiones funcionaban a velocidades de 5, 8 y 10 MHz . [6] : 2 En 1990, una actualización de la tecnología del proceso de fabricación dio como resultado el V20H y el V20HL, con un rendimiento mejorado y un consumo de energía reducido. [5] Las versiones posteriores agregaron velocidades de 12 y 16 MHz. Los V20HL también eran completamente estáticos, lo que permitía detener su reloj.
El V20 fue descrito internamente como de 16 bits de ancho. Utilizaba un bus de datos externo de 8 bits que se multiplexaba en los mismos pines que el byte bajo del bus de direcciones. Su bus de direcciones de 20 bits de ancho podía direccionar 1 MB de memoria.
Se informó que el V20 era compatible con el coprocesador de unidad de punto flotante (FPU) Intel 8087. [7] NEC también diseñó su propia FPU, la μPD72091 , que fue cancelada antes de llegar a producción. Siguieron esto con un diseño revisado, el μPD72191, pero no está claro cuántas, si es que hubo alguna, de esta segunda parte se produjeron. [8]
El V30, una CPU casi idéntica con un bus de datos externo de 16 bits de ancho, debutó el 1 de marzo de 1984. [9] [5] Era compatible con pin y código objeto con Intel 8086.
El ISA del V20 incluye varias instrucciones no ejecutadas por el 8088, con instrucciones para manipulación de bits, operaciones BCD empaquetadas, multiplicación y división. También incluyen nuevas instrucciones en modo real del Intel 80286. [10]
Las instrucciones ADD4S
, SUB4S
y CMP4S
pudieron sumar, restar y comparar enormes números decimales codificados en binario almacenados en la memoria. Instrucciones ROL4
y rotar mordiscosROR4
de cuatro bits . Otra familia estaba formada por las instrucciones , , y , que prueban, configuran, borran e invierten bits individuales de sus operandos, pero son mucho menos eficientes que los equivalentes posteriores de i80386 , , y ; tampoco son compatibles sus codificaciones. Había dos instrucciones para extraer e insertar campos de bits de longitudes arbitrarias ( , ). Y finalmente, había dos prefijos de repetición adicionales, y , que modificaban el original y las instrucciones para escanear una cadena de bytes o palabras (con instrucciones y ), mientras que una condición de menos o no menos seguía siendo cierta. [11]TEST1
SET1
CLR1
NOT1
BT
BTS
BTR
BTC
EXT
INS
REPC
REPNC
REPE
REPNE
SCAS
CMPS
El V20 ofrecía un modo que emulaba una CPU Intel 8080 . BRKEM
Se emite una instrucción para iniciar la emulación 8080. El operando de la instrucción especifica un número de interrupción cuyo vector contiene el segmento: desplazamiento donde comenzará la emulación. Para finalizar, RETEM
se emite una instrucción en código 8080. Una característica que no se emplea con frecuencia es CALLN
(llamada nativa), que emite una llamada de interrupción de tipo 8086 que permite que el código x86 (que regresa usando un IRET
) se mezcle con el código 8080.
Otro modo pone el procesador en un estado de ahorro de energía mediante una HALT
instrucción. [6] [7]
En 1982, Intel demandó a NEC por los μPD8086 y μPD8088 de este último. Esta demanda se resolvió extrajudicialmente y NEC acordó conceder la licencia de los diseños a Intel. [12]
A finales de 1984, Intel volvió a presentar una demanda contra NEC, alegando que el microcódigo del V20 y V30 infringía sus patentes para los procesadores 8088 y 8086. [13] El ingeniero de software de NEC, Hiroaki Kaneko, había estudiado tanto el diseño de hardware de las CPU Intel como el microcódigo original de Intel.
En su fallo, el tribunal determinó que el microcódigo del almacén de control constituye un programa informático y, por tanto, está protegido por derechos de autor. [14] Además, descubrieron que Intel había perdido sus derechos de autor al no garantizar que todos los chips de segunda fuente estuvieran marcados adecuadamente. El tribunal también determinó que NEC no se limitó a copiar el microcódigo de Intel, y que el microcódigo en el V20 y el V30 era lo suficientemente diferente del de Intel como para no infringir las patentes de Intel.
El juez del caso aceptó la evidencia de la sala limpia de NEC . También aprobó el uso de ingeniería inversa por parte de NEC con respecto a la creación del microcódigo Rev.2 de NEC, sin comentarlo con respecto al código Rev.0. [14] : 212–221