Dentro del microprocesador seccional de múltiples chips Am2901 de los años 70 de AMD

Dentro del microprocesador seccional de múltiples chips AMD Am2901 de los años 70,

puede estar familiarizado con los procesadores avanzados fabricados por Advanced Micro Devices. Pero AMD comenzó a producir procesadores en 1975 cuando presentó por primera vez su Am2901. Fue el llamado procesador seccional de múltiples chips: cada chip procesó 4 bits, y para aumentar el tamaño de la palabra, se usaron varios chips simultáneamente. Este enfoque se usó en las décadas de 1970 y 1980 para crear procesadores de 16, 32 o 64 bits (por ejemplo), cuando no podían colocar todo el procesador en un chip rápido. Había procesadores en el mismo chip, pero su MOSLos transistores trabajaron más lentamente. Con el tiempo, los procesadores CMOS se hicieron más rápidos que los procesadores de transistores bipolares, y cuando su velocidad creció lo suficiente, casi todos los fabricantes cambiaron a ellos. Foto de un cristal con un chip Am2901. Las capas de metal del chip son visibles; El silicio está en la parte inferior. En los bordes del cristal, pequeños conductores conectan el chip con contactos externos.




El chip Am2901 ganó gran popularidad, se usó en una variedad de sistemas, desde el videojuego Battlezone hasta la minicomputadora VAX-11/730, desde la estación de trabajo Xerox Star hasta la computadora Magic 372 a bordo del caza F-16. Una versión más rápida de este procesador, Am2901C, utilizaba lógica acoplada al emisor (ESL) para mejorar el rendimiento. En este artículo, disecciono Am2901C, examino su cristal bajo un microscopio y explico cómo los circuitos ESL permiten implementar una unidad lógica aritmética (ALU).

Por cierto, en la documentación de Atari Battlezone no se menciona un modelo específico del chip Am2901, sin embargo, hay una nota al pie de página para el número de pieza 137004-001, que llaman el "conjunto de transistores". Además, se realizaron distorsiones intencionales en el diagrama de asignación de pines del chip, y se muestra que 20 pines de dirección y 8 pines de datos hacen que el chip se vea como ROM (a diferencia, por ejemplo, de los chips de la serie 7400 descritos exactamente). Atari pudo haber tratado de evitar la clonación de sus videojuegos ocultando los modelos de algunos chips clave.

Una alternativa popular para Am2901 en muchas microcomputadoras fue el chip ALU 74181 . Proporcionó las mismas funciones aritméticas y lógicas que Am2901, pero no sus registros.

Microprocesador seccional de múltiples chips


Tal vez se pregunte cómo varios chips de procesador pueden trabajar juntos y admitir palabras de longitud arbitraria. La conclusión es que la sección del microprocesador (MS) es un ladrillo de construcción, no todo el procesador, y necesita circuitos separados para decodificar las instrucciones y controlar el sistema. La MS tenía registros, realizaban operaciones aritméticas y lógicas con datos, y el chip de control (como Am2901) le decía a la MS qué hacer. Cada instrucción de máquina se dividió en pasos más pequeños, microinstrucciones almacenadas en el microcódigo ROM. En este caso, el conjunto de instrucciones fue determinado por el microcódigo, y no por Am2901, por lo que casi cualquier conjunto de instrucciones podría ser compatible .

Debido al hecho de que las secciones en dicho procesador no son completamente independientes entre sí, surgen ciertas dificultades durante el funcionamiento del procesador. Por ejemplo, al agregar dos números, la transferencia de una sección debe transferirse a otra. Además, el trabajo conjunto de varias secciones requiere operaciones como verificar un signo o verificar un resultado cero. El chip Am2901 tiene salidas especiales para admitir estas funciones.

¿Am2901 es un microprocesador? Desde mi punto de vista, Am2901 es solo una parte del procesador, sin embargo, todo depende de cómo determinar el "microprocesador" (describí mis pensamientos sobre esto en detalle en un artículo separado) Curiosamente, en la URSS estaban más inclinados hacia los microprocesadores seccionales que en los Estados Unidos. Y si en Occidente la palabra "microprocesador" generalmente significa un procesador en un solo chip, en los procesadores de la URSS en un solo chip o de varias secciones generalmente no se distinguieron .

Los microprocesadores seccionales de chips múltiples (MSM) estaban en algún lugar en el medio entre los chips de microprocesador y una computadora hecha de TTL simplespapas fritas. En ese momento, ensamblar una computadora a partir de chips TTL era mucho más rápido que hacer un microprocesador, pero esto requería muchas placas con chips. El uso de MSM permitió mantener la ventaja en velocidad, al tiempo que redujo el número de chips utilizados. MSM también proporcionó una mayor flexibilidad en comparación con el microprocesador, permitiendo al diseñador personalizar el conjunto de instrucciones y otras características arquitectónicas.

Descripción general de Crystal


La foto a continuación muestra el cristal Am2901 y resalta los bloques funcionales clave. Para esta foto, eliminé las capas de metal para que se puedan ver silicio y transistores. El bloque funcional más grande del chip es la memoria de registro en el centro. El chip tiene 16 registros de 4 bits (puede ver 16 columnas y 4 filas en la matriz de memoria). A la izquierda y a la derecha del bloque de memoria están los circuitos del controlador de memoria que controlan la escritura y la lectura. Fotocristal Am2901; Los bloques de funciones clave están marcados. Los circuitos externos consisten principalmente en memorias intermedias que convierten las señales entre TTL externos y ESL internos. Diagrama de flujo completo de Am2901







El dispositivo lógico aritmético (ALU) del chip se dedica a operaciones aritméticas (suma y resta) y lógicas (AND, OR, excluyendo OR). La primera sección de la ALU es un bloque grande en la parte inferior izquierda; consta de cuatro filas, ya que es una ALU de 4 bits. ALU también tiene una lógica que genera una salida de acarreo para sumar, y utiliza una técnica rápida llamada "carry lookahead". Luego, la ALU usa los valores transferidos para generar la suma en paralelo. Finalmente, los circuitos de salida procesan y amortiguan la cantidad, y la envían al contacto de salida.

Una transferencia con una vista previa usa las señales Generar y Propagar para determinar si un bit en cada posición produce su propia transferencia o pasa la entrante. Por ejemplo, si agrega 0 + 0 + C (C es la transferencia), la transferencia no se puede eliminar de esta adición, independientemente de su tamaño. Por otro lado, si agrega 1 + 1 + C, la transferencia aparecerá de todos modos, independientemente de lo que sea C. Finalmente, en los casos 0 + 1 + C (o 1 + 0 + C), la transferencia se transferirá más si C no fuera cero. Como resultado, las compuertas lógicas simples crean una señal G (Generar) para cada bit si ambos bits son iguales a 1, y una señal P (Propagar) si ambos bits no son iguales a 0.

La fórmula de transferencia depende de la ubicación del bit. Por ejemplo, considere una transferencia del bit 0 al bit 1. Ocurrirá si se establece el indicador P0 (es decir, la transferencia se originó o se transmite), y si la transferencia ha aparecido en este bit, o llegó a ella desde otros bits. Entonces C1 = P0 AND (Cin OR G0). En el guión de orden superior, el número de opciones está creciendo y su complejidad aumenta constantemente. Por ejemplo, considere una transferencia al bit 2. Primero, P1 debe ser armado para que la transferencia vaya desde el bit 1. Además, la transferencia fue creada por el bit 1 o transferida desde el bit 0. Finalmente, la primera transferencia también tuvo que venir de alguna parte tómalo: fue una transferencia que vino del bit 0 o una transferencia generada por el bit 1. Si pones todo esto en una fórmula, obtienes la función utilizada en Am2901: C2 = P1 AND (G1 OR P0) AND (C0 OR G0 OR G1).Las fórmulas para las diferentes transferencias y las P y G externas se dan enespecificaciones , fig. 9. Los

rectángulos vacíos en los bordes del chip son áreas para conectar el chip al mundo exterior. Junto a ellos hay esquemas para enviar y recibir señales. En particular, dado que el chip se comunica con circuitos externos usando señales TTL, pero usa ESL internamente, estos circuitos convierten entre voltajes TTL y ESL.

El chip tiene dos registros de desplazamiento capaces de desplazar la palabra un bit hacia la derecha o hacia la izquierda. Registro Q: un registro de 4 bits basado en disparadores. Finalmente, el circuito de voltaje de referencia genera los voltajes de referencia exactos necesarios para la operación del ESL.

Como ver un cristal


Para mirar dentro del chip, generalmente tiene que disolver su caja de plástico en ácidos peligrosos. Sin embargo, no compré el chip Am2901 en una caja de plástico, sino en una caja de cerámica. Simplemente caminé a lo largo de la costura del chip con un cincel y desconecté las dos mitades, lo que me permitió llegar al cristal dentro. Un cristal de silicio es un pequeño rectángulo en el centro del chip. Los conductores delgados conectan las almohadillas de cristal al marco del cable, que conduce a 40 contactos de chip externos.


Am2901 después de desconectar las dos mitades del cuerpo cerámico.

Para obtener fotos de alta resolución del chip, utilicé un microscopio metalográfico especial. En la foto de abajo puedes ver el logo de AMD. Arriba hay un conductor soldado al sitio. El chip tiene dos capas de metal que crean un circuito eléctrico, visible en la foto de la derecha.


Foto de primer plano del chip: se puede ver la inscripción 4301X (probablemente el número de pieza) y "AMD 1983".

Recopilé una gran foto de alta resolución de varias imágenes de microscopio pequeñas (lea más sobre el proceso de creación de fotos de cristal aquí ). Luego quité las capas de metal y tomé otro conjunto de fotografías de silicio.

La foto de primer plano a continuación muestra cuatro transistores y tres resistencias. Las diferentes áreas de silicona tienen diferentes impurezas, dándoles diferentes propiedades, y estas áreas son visibles bajo un microscopio. El chip está basado en bipolarTransistores NPN diferentes de los transistores MOS de las computadoras modernas. El transistor base (silicio tipo p), el emisor (silicio tipo n) y el colector (silicio tipo n) están marcados en el transistor izquierdo [B, E, C]. Los rectángulos claros son los contactos de silicio y la capa de metal que solía estar en la parte superior. Los dos transistores de la derecha tienen un gran colector común. En este chip, a menudo se encuentran transistores con un colector común.



Debajo hay tres resistencias. Se obtiene una resistencia agregando impurezas al silicio que aumentan su resistencia. La precisión de las resistencias en los circuitos integrados suele ser deficiente. También resultan ser relativamente grandes: aquí tienen el mismo tamaño que los transistores, mientras que otros son mucho más grandes. Por lo tanto, al diseñar circuitos integrados, intentan minimizar la cantidad de resistencias.

Lógica relacionada con el emisor


Los esquemas lógicos se pueden crear de maneras muy diferentes. Casi todas las computadoras modernas usan el sistema lógico CMOS (una estructura complementaria de semiconductores de óxido de metal ), donde las válvulas están formadas por transistores MOS. En la era de las minicomputadoras, TTL era muy popular. El ESL fue un esquema más rápido, pero menos común. La desventaja de ESL fue un mayor consumo de energía (la supercomputadora Cray-2 de 1985 utilizó válvulas ESL para aumentar su velocidad, pero tuvo que enfriarse con freón líquido).

La mayoría de las ventajas de ESL en velocidad se debieron al hecho de que los transistores no estaban completamente encendidos. Esto permitió a los transistores cambiar muy rápidamente las rutas actuales. Además, la diferencia entre el voltaje para los valores 0 y 1 era pequeña (del orden de 0,8 V), por lo que las señales podían cambiar rápidamente. Por ejemplo, en las válvulas TTL, la diferencia de voltaje es de aproximadamente 3.2 V (las señales pueden cambiar a una velocidad de aproximadamente 1 V por nanosegundo, por lo que con una gran diferencia de voltaje hay demoras de varios nanosegundos). Por otro lado, una pequeña diferencia de voltaje condujo a un aumento en la sensibilidad de ESL al ruido eléctrico.

Las primeras versiones de Am2901 usaban TTL, pero en 1979 AMD introdujo su versión más rápida, Am2901C. El Am2901C utilizaba ESL internamente para la velocidad, pero en el exterior mantenía el voltaje TTL, lo que facilita su uso en computadoras TTL. Esta publicación describe la variante Am2901C.

ESL se basa en un sistema de par diferencial : los amplificadores operacionales funcionan de manera similar . La idea de un par diferencial (ver más abajo) es que un sentido fijo fluye de acuerdo con el esquema. Si el voltaje en la entrada de la izquierda es mayor que en la derecha, entonces el transistor izquierdo se encenderá y la mayor parte de la corriente pasará por la rama izquierda. Y viceversa (tenga en cuenta que los emisores de transistores están conectados, de ahí el nombre de lógica acoplada al emisor.


Par diferencial Si el voltaje en la entrada izquierda (rojo) es más alto, la mayor parte de la corriente irá a lo largo del camino izquierdo, y viceversa.

Algunas modificaciones le permiten convertir un par diferencial en una válvula ESL. En primer lugar, el voltaje en una rama es fijo y se convierte en referencia, en algún punto del intervalo entre los niveles 0 y 1. Luego, si la entrada es mayor que la tensión de referencia, se considerará como 1, y si es menor, como 0. Entonces, la salida se conecta a la rama transistor (verde), que proporciona la señal de salida al amortiguar el voltaje de la rama. El circuito inversor se muestra a continuación, porque si el voltaje de entrada es alto, la corriente a través de la resistencia izquierda reducirá la salida. Para aumentar el rendimiento, la resistencia inferior se reemplazó por un drenaje (magenta), que consta de un transistor y una resistencia.

El drenaje en la parte inferior de la válvula ESL proporciona, de hecho, una corriente constante controlada por el voltaje entrante V CS . Esta opción es mejor que una resistencia simple, porque la corriente a través de la resistencia varía según el voltaje, dependiendo de los voltajes de entrada. Además, dicho circuito ahorra espacio, ya que utiliza una resistencia más pequeña.


Inversor ESL. La resistencia superior derecha se puede omitir porque no está conectada a ningún lado.

Puede construir una válvula ESL más compleja agregando más entradas. En el diagrama a continuación, se agrega un segundo transistor de entrada (2) paralelo al primero (1). La corriente fluirá a través de la resistencia R1 si hay 1 en la entrada A o B (es decir, el voltaje será más alto que la referencia). En este caso, la salida se reduce y obtenemos la válvula NOR. Usando otras configuraciones, puede hacer válvulas AND, XOR o circuitos más complejos.


Válvula ESL NOR

El diagrama anterior muestra una puerta NOR, tal como se implementa en un chip. La foto a continuación muestra el diagrama físico correspondiente de la válvula. A la izquierda hay una capa de cristal de silicio, donde los transistores y resistencias son visibles. A la derecha hay pistas de metal en la misma parte del chip. Arriba están los transistores 1 y 2, que reciben una señal de entrada. Cada uno de ellos tiene una base en la parte superior y un emisor en el medio. Los transistores tienen un colector común: un rectángulo blanco debajo. Las resistencias R1 y R2 son rectángulos de silicio. Todos los transistores en el medio (incluidos 3 y 4) tienen un colector común conectado dos veces al plus (los transistores y resistores no numerados pertenecen a otras válvulas).


Válvula NOR implementada en cristal Am2901

Se puede ver desde los conductores a la derecha que la capa superior proporciona la conexión de conductores horizontales a más, voltajes de referencia, drenaje de VCS y menos (se ve que más y menos se hacen más anchos para soportar altas corrientes). Debajo están los conductores que conectan los transistores. Desde arriba, las entradas A y B están conectadas a las bases de los transistores. El resto del cableado es más difícil de rastrear, ya que está cubierto por la capa superior. Pero puede, por ejemplo, ver la conexión entre el transistor 4, el colector de los transistores 1 y 2, y R1. Al estudiar cuidadosamente las fotografías del cristal, puede comprender todo el cableado y aplicar ingeniería inversa a la lógica del chip.

Unidad de lógica aritmética (ALU)


La unidad lógica aritmética (ALU) en el chip Am2901 realiza operaciones aritméticas o lógicas de 4 bits. Admite 8 operaciones diferentes: suma, resta y operaciones lógicas bit a bit (no se trata de multiplicación y división).

El siguiente diagrama de bloques muestra la estructura del AL29 Am2901. Primero, el selector (multiplexor) selecciona dos entradas de fuentes potenciales. El valor de D se transmite a los contactos de datos del chip, generalmente al bus de datos del procesador. A: este es el valor de una de las 16 entradas en el archivo de registro de chip, seleccionado por los contactos A0-A3; B funciona de manera similar. Se puede alimentar un valor constante de 0 a ALU. Finalmente, Q es el contenido del registro Q (registro separado opcional). Muchas fuentes de datos le dan al chip más flexibilidad.


Diagrama de bloques del ALU Am2901 de la especificación del chip. ALU realiza una de las ocho funciones en dos entradas de 4 bits, R y S. A la derecha hay varias salidas del chip: G, P, salida de acarreo, señal, desbordamiento, prueba cero.

Dos valores seleccionados, R y S, se envían a la ALU, que realiza la operación seleccionada y envía el resultado a F. Además, la ALU acepta la cantidad de arrastre y transfiere el valor de arrastre (CN + 4) ; Esto le permite combinar varias ALU para manejar palabras más largas. Las salidas G y P se usan para transferir con una vista previa, y el signo, el desbordamiento y la prueba de ceros se pueden usar como códigos de procesador condicionales.

Describa brevemente el circuito ALU, comenzando con el selector. Los primeros dos cuadros del selector a continuación (D y A) seleccionan el primer argumento de ALU, y los últimos tres (A, Q y B) seleccionan el segundo argumento. Cada selector implementa la función Seleccionar • (Valor ⊕ Invertir), donde Valor es el valor de entrada potencial, Seleccionar es 1 para seleccionar este valor e Invertir es 1 para invertir el valor (dado que ALU es de 4 bits, se seleccionan 4 bits; cada selector se implementa utilizando cuatro Válvulas ESL).

El valor deseado se selecciona incluyendo una de las líneas Seleccionar. Si ninguno de ellos está activado, el valor que llega a la ALU será 0. Además, el selector puede invertir la entrada; el chip realiza la resta sumando el valor invertido.


La primera parte de ALU consta de cuatro capas horizontales, una por bit.

El siguiente diagrama muestra el circuito AND-XOR utilizado en ALU AM2901, que implementa la operación A '• (B ⊕ C). Describiré brevemente cómo funciona. Si el voltaje en la entrada A es alto, la corriente fluye a través de los transistores izquierdos, bajando la salida. Si B y C son de alto voltaje, la corriente a través de los transistores izquierdos B y C reduce la salida. Si el voltaje en V y C es bajo, la corriente a través de los transistores V ref reduce la salida. Si B y C tienen un voltaje diferente, la corriente pasa de los transistores +, y la salida permanece en alto voltaje. La conclusión es que una sola válvula ESL puede implementar funcionalidades complejas. Con la mayoría de las puertas lógicas, XOR es más difícil de implementar. Para mí, personalmente, la lógica de ESL se asemeja al relé de la década de 1920, porque cambia entre las dos rutas actuales, y no solo se enciende y apaga.



Después de seleccionar dos entradas para la ALU, calcula los bits "Propagar" (P) y "Generar" (G) para cada par de bits entrantes. Esto es parte del procedimiento de transferencia de vista previa utilizado para la adición rápida.

La foto a continuación muestra las partes restantes del circuito ALU (para variar, esta foto tiene una capa de metal, a diferencia de las fotos anteriores, donde solo había silicio). Las señales P y G del circuito anterior pasan a dos bloques de cálculo de transferencia. La unidad de transferencia inferior calcula la señal externa P, G y de transferencia con una vista previa de varios chips; Esto le permite agregar rápidamente palabras largas.

La técnica de transferencia con vista previa se puede implementar en varios chips para agregar rápidamente números de más de 4 bits. Cada chip genera señales de Generar y Propagar, indicando si generará una transferencia o transmitirá una transferencia entrante. Estas señales se combinan con un chip generador de transferencia con una vista previa, como la de Am2902.

La unidad de transferencia superior calcula las transferencias internas. El esquema de "suma" calcula la suma de cada bit utilizando la separación silábica y los valores de P y G. Es importante que, debido a la separación silábica, la suma de cada bit se pueda calcular en paralelo. Finalmente, el circuito de salida convierte las señales ESL internas en señales TTL y controla los cuatro contactos de salida.


El resto del circuito ALU

El chip utiliza algunas técnicas interesantes que le permiten usar el sumador para ocho operaciones. El circuito selector descrito anteriormente puede complementar opcionalmente su entrada. Esto se usa para restar, así como para algunas de las funciones lógicas. Al calcular funciones lógicas (en lugar de sumar / restar), el cálculo de transferencia está deshabilitado. Durante las operaciones lógicas, los bits no se ven afectados por lo que sucede con otros bits. Finalmente, el circuito XOR del sumador se convierte en el circuito AND aumentando las señales P al máximo. Por lo tanto, en lugar de usar ocho circuitos diferentes para ocho operaciones de ALU, el chip usa un solo circuito con algunos ajustes cuidadosamente seleccionados.

El chip usa los valores de P y G para generar la suma de las entradas R y S con el carry C. La suma (R ⊕ S ⊕ C) ', se calcula como ((P' ∨ G) ⊕ C) ', donde P = R∨S, y G = R • S. Si P es igual a 1, entonces (P '∨ G) se reduce a G igual a R • S. Resulta que, al cambiar P, se puede usar el mismo circuito para calcular AND a partir de los valores de entrada de R y S.

La siguiente tabla muestra las 8 operaciones realizadas por ALU. Se introducen tres bits de instrucciones en el chip y se utilizan para seleccionar la operación: I5, I4 e I3. La columna "función" muestra las funciones de acuerdo con la documentación, y la columna "cálculo" muestra cómo se calcula cada uno de los bits. Tenga en cuenta que todas las operaciones se reducen a OR exclusivo (⊕) o AND (∧). La adición se realiza mediante el XOR bit a bit de los dos argumentos y los bits de acarreo. La resta se lleva a cabo mediante la adición del argumento y la posterior adición. Por ejemplo, sumar el complemento R (R ') es lo mismo que restar R. El bit I3 complementa a R y el bit I4 complementa a S. Las operaciones con OR exclusivo (EXOR y EXNOR) usan los mismos elementos que la suma, pero con bloqueo de cálculo de transferencia. La operación AND se realiza bloqueando la señal G. Finalmente, OR se calcula de acuerdo con la ley de Morgan, R '∧ S'= (R ∨ S) '. El punto es que Am2901 no requiere elementos separados para sumar, restar, AND, OR y EXOR: la mayoría de los elementos se usan en cada una de las operaciones.

Notación simbólicaI5I4I3FunciónCálculo
AÑADIR0 00 00 0R plus sR ⊕ S ⊕ Llevar
SUBR0 00 01S menos rR '⊕ S ⊕ Llevar
SUBS0 010 0R menos sR ⊕ S '⊕ Llevar
O0 011R OR S(R '∧ S') ⊕ 1
Y10 00 0R y SR ∧ S
NOTRS10 01R 'Y SR '∧ S
EXOR110 0R EX O SR ⊕ S '⊕ 1
EXNOR111R EX NOR SR '⊕ S' ⊕ 1


Conclusión


El chip Am2901C es de interés como un ejemplo de ESL de alta velocidad, una familia lógica relativamente rara. El chip ALU se distribuye en la parte inferior del chip, implementa ocho funciones diferentes y utiliza la transferencia de vista previa para acelerar el trabajo. Aunque el chip es bastante complejo, un examen cuidadoso bajo un microscopio ayuda a comprender su trabajo.

Los procesadores seccionales de múltiples chips, como el Am2901, se usaron en microcomputadoras y muchos otros sistemas en los años setenta y ochenta. Sin embargo, al final, las mejoras en la tecnología CMOS permitieron la implementación de un procesador rápido en un solo chip, lo que hizo que esta tecnología fuera obsoleta. Y aunque el Am2901 probablemente contiene alrededor de mil transistores, y funciona a 16 MHz, hoy AMD fabrica procesadores que contienen miles de millones de transistores y que funcionan a 4 GHz.

All Articles