El NEC V20 es un microprocesador diseñado y producido por NEC . Es compatible en cuanto a pines y código objeto con el Intel 8088 , con una arquitectura de conjunto de instrucciones (ISA) similar a la del Intel 80188 con algunas extensiones. [2] El V20 se presentó en marzo de 1984. [1] [2]
El chip V20 estaba compuesto por 63.000 transistores , más del doble de los 29.000 de la CPU 8088. [1] El chip estaba 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 produzcan 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 funcionando a la misma frecuencia. [2]
El V20 se fabricó 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 se describía como un dispositivo de 16 bits de ancho interno. 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 se canceló antes de llegar a producción. A continuación, diseñaron un diseño revisado, el μPD72191, pero no está claro cuántos ejemplares de esta segunda parte se fabricaron, si es que se fabricó alguno. [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 en pines y código objeto con el Intel 8086.
La ISA del V20 incluye varias instrucciones que no ejecuta el 8088, como instrucciones para manipulación de bits, operaciones BCD empaquetadas, multiplicación y división. También incluye nuevas instrucciones en modo real del Intel 80286. [10]
Las instrucciones ADD4S
, SUB4S
, y CMP4S
eran capaces de sumar, restar y comparar enormes números decimales codificados en binarioROL4
almacenados en la memoria. Las instrucciones y rotar nibblesROR4
de cuatro bits . Otra familia estaba formada por las instrucciones , , , y , que prueban, establecen, borran e invierten bits individuales de sus operandos, pero son mucho menos eficientes que los posteriores equivalentes i80386 , , , y ; sus codificaciones tampoco son compatibles. Había dos instrucciones para extraer e insertar campos de bits de longitudes arbitrarias ( , ). Y, por último, había dos prefijos de repetición adicionales, y , que modificaban las instrucciones y originales para escanear una cadena de bytes o palabras (con instrucciones y ) mientras una condición menor o no menor permaneciera verdadera. [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 debe comenzar la emulación. Para finalizar, RETEM
se emite una instrucción en código 8080. Una característica que no se utiliza a menudo es (call native) que emite una llamada de interrupción de tipo 8086 que permite mezclar CALLN
el código x86 (que retorna utilizando un ) con el código 8080.IRET
Otro modo pone al procesador en un estado de ahorro de energía a través de una HALT
instrucción. [6] [7]
En 1982, Intel demandó a NEC por los diseños μPD8086 y μPD8088 de esta última. La demanda se resolvió extrajudicialmente y NEC aceptó licenciar los diseños de Intel. [12]
A finales de 1984, Intel volvió a presentar una demanda contra NEC, alegando que el microcódigo en los 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 lo tanto, está protegido por derechos de autor. [14] Además, determinó que Intel había perdido sus derechos de autor al no asegurarse de que todos los chips de segunda fuente estuvieran debidamente marcados. El tribunal también determinó que NEC no se limitó a copiar el microcódigo de Intel y que el microcódigo de los modelos V20 y V30 era lo suficientemente diferente del de Intel como para no infringir las patentes de Intel.
El juez del caso aceptó la prueba de 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 hacer comentarios al respecto con respecto al código Rev.0. [14] : 212–221