Articulo de referencia

Toshiba TLCS

TLCS es un prefijo que se aplica a los microcontroladores fabricados por Toshiba . La línea de productos incluye varias familias de arquitecturas CISC y RISC . Los componentes i...

TLCS es un prefijo que se aplica a los microcontroladores fabricados por Toshiba . La línea de productos incluye varias familias de arquitecturas CISC y RISC . Los componentes individuales generalmente tienen un número de pieza que comienza con "TMP". Por ejemplo, el TMP8048AP pertenece a la familia TLCS-48. [ 1 ] : 11

TLCS-12

El TLCS-12 fue un microprocesador de 12 bits y unidad central de procesamiento fabricado por Toshiba. Su desarrollo comenzó en 1971 y finalizó en 1973. Era un chip de circuito integrado MOS de 32 mm² con aproximadamente 2800 compuertas de silicio , fabricado con un proceso de 6 μm y lógica NMOS . Se utilizó en el sistema de unidad de control del motor Ford EEC , cuya producción comenzó en 1974 y se generalizó en 1975. La memoria del sistema incluía 512 bits de RAM , 2 kb de ROM y 2 kb de EPROM . [ 2 ] [ 3 ] El TLCS-12A, una versión mejorada del TLCS-12, se anunció en 1975. [ 4 ]   

Familia TLCS-47

Los microcontroladores de la categoría TLCS-47 son sistemas de 4 bits . Ya no se anuncian en el sitio web de Toshiba.

Familia TLCS-48

La familia TLCS-48 eran clones del microcontrolador Intel MCS-48 (8048). [ 1 ]

Familia TLCS-Z80

Toshiba Z84C00

Se trataba de una serie de microcontroladores compatibles con Zilog Z80 .

Familia TLCS-90

Versión de desarrollo de un microcontrolador de la familia TLCS-90 con zócalo para EPROM.

Los microcontroladores de la familia TLCS-90 utilizan una arquitectura de 8 bits / 16 bits que recuerda al Z80 . [ 1 ] Estos ya no se anuncian en el sitio web de Toshiba.

El TLCS-90 hereda la mayoría de las características del Z80, tales como:

  • siete registros de 8 bits (A, B, C, D, E, H y L),
  • seis registros de 16 bits (BC, DE, HL, IX, IY y SP), tres de los cuales son pares de registros de 8 bits,
  • el indicador combinado de paridad/desbordamiento,
  • las instrucciones de intercambio de EX DE,HL, EX AF,AF'y EXXde 16 bits, [ 1 ] : Apéndice-2 y
  • las instrucciones de copia LDIRde LDDRmemoria.

Sin embargo, existen diferencias significativas. Omite el espacio de direcciones de E/S separado del Z80, pero agrega más flexibilidad a las combinaciones de operandos, algunas operaciones nuevas (en particular, multiplicación y división) y varios modos de direccionamiento adicionales :

  • (SP+d)y (HL+A)modos indexados que funcionan de manera similar a (IX+d)y(IY+d)
  • Direccionamiento de memoria de " página cero " de un solo byte desde FF00 hasta FFFF 16
  • (IX)y (IY)direccionamiento sin desplazamiento, lo que permite ahorrar un solo byte de código máquina y reducir el tiempo de ejecución.
  • Largo relativo a PC (de -32768 a +32767 bytes desde el contador de programa, en lugar del más corto de -128 a +127)

La mayor parte de la funcionalidad del acumulador A de 8 bits también se ha implementado para el par de registros HL de 16 bits, como las instrucciones faltantes y las SUBinstrucciones bit a bit , , y . Se ha implementado la peculiaridad de la bandera del Z80. Además, se añadió la instrucción para facilitar el conteo de bucles de 16 bits.CPANDXORORADD HL,rrDJNZ BC,addr

Los paquetes TLCS-90 SoC incluyen los registros BX y BY de 4 bits, que se concatenan con direcciones efectivas basadas en el registro IX o IY, lo que permite al procesador direccionar hasta un megabyte de memoria. [ 1 ] : MPU90-16 El procesador incluye las instrucciones INCX ($FF00+n)y DECX ($FF00+n), que son útiles para realizar aritmética de punteros de 20 bits utilizando los registros IX y BX o los registros IY y BY.

Las instrucciones se dividen en instrucciones básicas de un byte e instrucciones extendidas de dos bytes. Los códigos de operación E0 16 a FE 16 son prefijos que inician una instrucción extendida. La codificación de la instrucción es inusual, ya que el prefijo especifica un operando de la instrucción extendida y, a diferencia de los prefijos de un solo byte utilizados por la arquitectura Z80 o x86 , puede ir seguido de bytes de operando. [ 1 ] : MPU90-23, Apéndice-12 Después de los bytes del prefijo, el segundo byte del código de operación especifica la operación y el segundo operando.

Por ejemplo, la instrucción ADD (IX+127),5se codifica como F4 7F 68 05, donde los dos primeros bytes especifican la dirección de destino, el tercer byte especifica la operación y el cuarto byte proporciona el operando de origen.

Familia TLCS-870

Los microcontroladores de la familia TLCS-870 (series TLCS-870, TLCS-870/X, TLCS-870/C y TLCS-870/C1) utilizan una arquitectura de 8 bits / 16 bits inspirada en el TLCS-90, pero menos parecida al Z80.

El TLCS-870 es el original, con un espacio de direcciones de 16 bits, que se extendió en dos direcciones diferentes:

  • TLCS-870/X extiende la arquitectura a 20 bits de forma compatible con versiones anteriores. [ 5 ]
  • TLCS-870/C conserva el espacio de direcciones de 16 bits y proporciona un lenguaje ensamblador compatible , pero cambia la codificación de instrucciones [ 5 ] de modo que se requiere un código objeto diferente .
  • TLCS-870/C1 es una variante compatible con versiones anteriores del 870/C con extensiones menores. [ 6 ]

Familia TLCS-900

La familia TLCS-900 hereda la mayoría de las características de la arquitectura TLCS-90 e incluye registros de 32 bits y un bus de direcciones de 24 bits. La mayoría de las implementaciones (TLCS-900, [ 7 ] TLCS-900/L, [ 7 ] TLCS-900/H y la serie TLCS-900/L1) tienen rutas de datos internas de 16 bits , como el MC68000 , mientras que la serie TLCS-900/H1 tiene un ancho interno de 32 bits (como el MC68020 ).

El conjunto de instrucciones es mayormente compatible con el TLCS-90, aunque la codificación binaria difiere. [ 7 ] : 182–184 Se implementa el mismo esquema de codificación del modo de direccionamiento antes del código de operación de la instrucción y los operandos adicionales. Los primeros modelos admitían tanto un "modo mínimo" donde los registros con bancos y el contador de programa eran de 16 bits de ancho, como un "modo máximo" que tenía todos los registros de propósito general de 32 bits. Los modelos posteriores omitieron el modo mínimo.

En modo máximo, hay 4 bancos de cuatro registros de 32 bits, cada uno de los cuales se puede dividir en dos mitades de 16 bits o cuatro cuartos de 8 bits. En el modo mínimo de los primeros modelos, hay 8 bancos de cuatro registros de 16 bits, que se pueden dividir en mitades de 8 bits. El procesador puede usar el banco actual (apuntado por el RFPcampo en el registro de estado SR de 16 bits), el banco anterior para ser compatible con el esquema de registro alternativo del TLCS-90, o cualquier número de banco arbitrario de 0 a 7. También hay un conjunto fijo de cuatro registros de 32 bits, con uno de ellos dedicado como puntero de pila. Los primeros modelos tenían dos punteros de pila separados para los modos de usuario y sistema. Normalmente, solo se puede direccionar un conjunto de 8 registros desde un código de 3 bits; El direccionamiento de todos los registros requiere un byte de código adicional de 6/8 bits que solo puede insertarse en el operando del modo de direccionamiento prefijado, lo que restringe las combinaciones de registros que pueden usarse para los operandos de origen y destino. [ 7 ]

El registro F (la mitad inferior de 8 bits del registro SR de 16 bits) tiene un registro alternativo llamado F'. La ejecución EX AF,AF'desde el TLCS-90 requiere la ejecución de ambos EX A,A'y EX F,F'.

El TLCS-900 también incluye cuatro canales de transferencia "microDMA", cada uno con direcciones de origen y destino programables, número de transferencias, tamaños de datos (byte, palabra y palabra larga) y diversos modos de transferencia. Estos se activan de la misma manera que las interrupciones normales e interrumpen la ejecución del programa durante el proceso de transferencia.

El modelo TLCS-900/H se utilizó principalmente en las consolas Neo Geo Pocket y Neo Geo Pocket Color .

Características y diferencias

Los procesadores TLCS actuales ofrecen algunas o todas las siguientes características:

Dado que la demanda de estas características varía considerablemente según los requisitos de cada proyecto (bajo consumo energético, gran número de puertos de entrada/salida, etc.), los clientes pueden elegir entre una amplia gama de versiones diferentes.

Herramientas de desarrollo

Toshiba ofrece un compilador C compatible con ANSI C y un ensamblador . Ninguna de las dos herramientas está disponible de forma gratuita.

El compilador gratuito Small Device C Compiler es compatible con el TLCS-90.

Existe un proyecto para adaptar el ensamblador GNU a la familia TLCS-900.

El macroensamblador AS de Alfred ArnoldEs un ensamblador gratuito que admite las familias TLCS-47, TLCS-870, TLCS-90, TLCS-900 y TLCS-9000.

Referencias

  1. 1 2 3 4 5 6 Microcontrolador de 8 bits: TLCS-48, -90 (PDF) . Toshiba. Noviembre de 1988. Archivado (PDF) del original el 28 de marzo de 2020.URL alternativa
  2. "1973: Microprocesador de control de motor de 12 bits (Toshiba)" (PDF) . Museo de Historia de Semiconductores de Japón . Consultado el 27 de junio de 2019 .
  3. Belzer, Jack; Holzman, Albert G.; Kent, Allen (1978). Enciclopedia de Ciencias de la Computación y Tecnología: Volumen 10 - Álgebra lineal y matricial a microorganismos: identificación asistida por computadora . CRC Press . pág. 402. ISBN  9780824722609.
  4. ^ "新HPCの歩み(第54回)-1975年(b)-" . Consultado el 20 de noviembre de 2023 .
  5. 1 2 Haywood, David. "Código fuente de MAME: src/devices/cpu/tlcs870/tlcs870d.cpp" . GitHub . Consultado el 25 de abril de 2020 .
  6. "Conjunto de instrucciones de la serie TLCS-870/C1" (PDF) . Toshiba Corporation Semiconductor Company. 16 de diciembre de 2008.
  7. 1 2 3 4 "Manual del usuario del microcontrolador de 16 bits de la serie TLCS-900" (PDF) . Corporación Toshiba. 1994 vía Bitsavers.org.
  • Sitio web de Toshiba Japón sobre la serie TLCS
  • Sitio web de Toshiba USA sobre la serie TLCS