Este artículo incluye una lista de referencias generales , pero permanece en gran parte sin verificar porque carece de suficientes citas en línea correspondientes . ( Julio de 2009 ) |
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 es un miembro de la familia TLCS-48. [1] : 11
El TLCS-12 era un microprocesador de 12 bits y una unidad central de procesamiento fabricada por Toshiba. Comenzó a desarrollarse en 1971 y se completó en 1973. Era un chip de circuito integrado MOS de 32 mm² con aproximadamente 2.800 puertas de silicio , fabricado en un proceso de 6 µm con lógica NMOS . Fue utilizado en el Ford CEE unidad de control de motor de sistema, que comenzó la producción en 1974 y entró en la producción en masa en 1975. La memoria del sistema incluye 512 bits RAM , 2 kb ROM y 2 kb EPROM . [2] [3]
Los microcontroladores de la categoría TLCS-47 son sistemas de 4 bits . Estos ya no se anuncian en el sitio web de Toshiba.
La familia TLCS-48 eran clones del microcontrolador Intel MCS-48 (8048). [1]
Se trataba de una serie de microcontroladores compatibles con Zilog Z80 .
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 funciones del Z80, como:
EX DE,HL
, EX AF,AF'
y EXX
las instrucciones de intercambio de 16 bits, [1] : Apéndice-2 yLDIR
y LDDR
.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, multiplicar y dividir) y varios modos de direccionamiento adicionales :
(SP+d)
y (HL+A)
modos indexados que operan de manera similar (IX+d)
y(IY+d)
(IX)
y (IY)
direccionamiento sin desplazamiento, lo que permite guardar un solo byte de código máquina y aumentar el tiempo de ejecuciónLa mayor parte de la funcionalidad de 8 bits acumulador A también ha sido implementado para el par de registro HL 16 bits, tales como la falta SUB
y CP
las instrucciones, y las AND
, XOR
y OR
las instrucciones de bit a bit. Se ADD HL,rr
implementa la peculiaridad de la bandera del Z80. Además, DJNZ BC,addr
se agregó la instrucción para facilitar el conteo de bucles de 16 bits.
Los paquetes de SoC TLCS-90 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 puntero 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 y extendidas de dos bytes. Los códigos de operación E0 16 a FE 16 son prefijos que comienzan una instrucción extendida. La codificación de la instrucción es inusual porque 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),5
se 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.
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 como el Z80.
El TLCS-870 es el original, con un espacio de direcciones de 16 bits, que se amplió en dos direcciones diferentes:
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 (series TLCS-900, [6] TLCS-900 / L, [6] TLCS-900 / H y TLCS-900 / L1) tienen rutas de datos internas de 16 bits , como el MC68000 , mientras que el TLCS-900 / La serie H1 tiene 32 bits de ancho internamente (como el MC68020 ).
El conjunto de instrucciones es en su mayoría compatible con versiones posteriores del TLCS-90, aunque la codificación binaria es diferente. [6] : 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 operandos adicionales. Los primeros modelos soportaban tanto un "modo mínimo" donde los registros almacenados y el contador de programa tenían 16 bits de ancho, y 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 el 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 utilizar el banco actual (señalado por elRFP
en el registro de estado de 16 bits SR), el banco anterior debe 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 se puede insertar en el operando del modo de direccionamiento con prefijo, lo que restringe qué combinaciones de registros se pueden usar para los operandos de origen y destino. [6]
El registro F (la mitad baja de 8 bits del registro SR de 16 bits) tiene un registro alternativo llamado F '. Ejecutar EX AF,AF'
desde el TLCS-90 requiere ejecutar ambos EX A,A'
y EX F,F'
.
El TLCS-900 también incluye 4 canales de transferencia "microDMA", cada uno de los cuales tiene direcciones de origen y destino programables, conteos de transferencia, tamaños de datos (byte, palabra y palabra larga) y varios 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 fue el más utilizado en Neo Geo Pocket y Neo Geo Pocket Color .
Los procesadores TLCS actuales ofrecen algunas o todas las siguientes características:
Como la demanda de estas características difiere ampliamente según los requisitos de un proyecto específico (bajo consumo de energía, gran número de puertos de E / S, etc.), los clientes pueden elegir entre una amplia gama de versiones diferentes.
Toshiba ofrece una ANSI C compatibles C compilador y un ensamblador . Ninguna herramienta está disponible de forma gratuita.
El compilador de Small Device C gratuito es compatible con TLCS-90.
Existe un proyecto para trasladar el ensamblador GNU a la familia TLCS-900.
El Macroassembler AS [1] de Alfred Arnold es un ensamblador gratuito que admite las familias TLCS-47, TLCS-870, TLCS-90, TLCS-900 y TLCS-9000.