CPU arquitectónica activada por transporte de 8 bits en TTL

Victoria Prieto
Victoria Prieto

Cuando se nos presente el interior de un microprocesador, lo más probable es que mostremos algo así como una de las CPU de la primera generación de 8 bits de la década de 1970. Habrá el conocido grupo de registros y calculadoras, una unidad aritmética y lógica (ALU) y un decodificador instructivo con lógica de control relacionada. Un conjunto de instrucciones complejo hace que el decodificador camine registros y ALU realice todas las funciones en el orden correcto. Es posible que las CPU hayan seguido proliferando desde la década de 1970, pero el diagrama de bloques del 8080 o similar todavía proporciona una base básica para el principiante.

Entonces, cuando le contamos sobre otra CPU casera que usa chips lógicos TTL, es de esperar que siga este camino desgastado. Afortunadamente, aunque la comunidad de piratas informáticos siempre puede sorprendernos, y [Szoftveres] Hizo precisamente eso con su diseño. Es una máquina de instrucción única que sigue una arquitectura impulsada por transporte, y esto significa que se desvía mucho de la arquitectura convencional descrita anteriormente. Cada instrucción es un cambio entre las diferentes funciones físicas del procesador, y el cálculo se logra mediante las funciones físicas que trabajan en los datos a medida que se mueven a ellos y presentan el resultado en sus salidas listas para ser trasladadas a otra parte. El resultado es una computadora a su manera bastante simple, aunque a costa de cierta inflexibilidad y falta de algunas características de hardware, las consideramos más comunes en procesadores más convencionales.

Esta máquina se construyó sobre una placa de tiras y tiene una placa que la acompaña con una pantalla, teclado y módem. Hay una pequeña placa basada en un microcontrolador ATmega8 que realiza la función de una carga rápida de programa y se puede quitar después de cargar el código. El software puede escribirse en un lenguaje similar a C y compilarse usando el compilador en su repositorio de GitHub, y produjo un video de YouTube de la máquina en ejecución. Vale la pena leer este proyecto en profundidad por su introducción a esta arquitectura un poco inusual.

Le hemos traído muchas CPU lógicas 74 TTL a lo largo de los años, pero sorprendentemente este no es el primer proyecto de un solo núcleo.

  • ESTOLA dice:

    Guau. Otra CPU TTL más. Puntos adicionales para la pantalla del segmento de la vejiga 7

    Todos los pequeños frutos se han ido, ahora hemos visto CISC, RISC, instrucción única, Harvard, Von Newman y ahora un nuevo nivel con esta arquitectura activada por transporte.

    Lo único que no hemos visto es la canalización (no se usa con chips TTL) y arquitecturas realmente extrañas como Helix.

    Este está muy bien pensado y documentado. También es el más completo que he visto con un compilador personalizado completo y una cadena de herramientas. Eso debe haber sido tan difícil como crear el hardware.

    Creo que tenemos un ganador lol.

    Otra cosa … llamé a este tipo de tablero “tablero” o panel de funciones. No tiene rayas.

    • yeti dice:

      ¿Es Helix realmente extraño?

      Cada uno de los 8 núcleos (! Strange (8)) cubre mapas de toda la RAM a los registros o viceversa. Algunas personas dicen “registros ejecutables” en lugar de “registros mapeados en memoria”. Aparte de esto, la arquitectura de los núcleos parece muy común.

      La (Hub-) RAM a la que pueden acceder estos núcleos es un almacenamiento externo común desde el punto de vista de los núcleos. Esto puede no ser comparable a la RAM principal de otras CPU. ¿Quizás esta sea la mayor fuente de confusión?

      El resto del P8X32A está en hardware de chip (por núcleo), ya que otras MCU tienen cantidades mucho mayores. Así que incluso (==! Extraño) un poco menos extraño que otros.

      ¡Me gustan estos animales!

      Pero: con alrededor de € 8 por chip, mantienes tus hélices juntas, les das nombres individuales y usas chips más baratos para las tareas diarias en la tierra de MCU …
      😉

      • ESTOLA dice:

        El Helix siempre me pareció un chip curioso, pero nunca me molesté en comprar uno. Sería un chip divertido de codificar, pero primero tendría que aprender otro ensamblaje. Sí, conozco SPIN.

        El Helix parece ser una solución a un problema que nunca he encontrado. Es como si necesito más tareas múltiples o mejores tiempos de respuesta de ISR en un chip de un solo núcleo, cuando solo obtengo chips más rápidos y procesos de tiempo compartido.

        Parte de mí quiere que tenga * ese * problema que Helix resuelve solo para poder comprar uno. Entonces, aunque ciertamente parece que sería un chip divertido para jugar, no puedo pensar en una sola aplicación que necesite la complejidad y características adicionales de Helix.

        Un día lo alcanzaré.

    • Megol dice:

      Todos esos tipos de computadoras que mencionaste son máquinas Von Neumann *, al menos normalmente. Podrían ser máquinas de Harvard (datos separados y espacio de instrucción) y, por ejemplo, La máquina TTA podría usar almacenamiento distribuido sin un espacio de direcciones común, lo que no la convertiría ni en Von Neumann ni en Harvard.

      Los diseños TTL canalizados no eran exactamente algo raro por cierto, es más una cuestión de complejidad, potencia y costo que limitan las computadoras caseras a proyectos que no son proyectos en proceso. Excepto en comparación con una computadora moderna, incluso una máquina TTL con canalizaciones agresivas sería extremadamente lenta para limitar el atractivo de gastar más dinero y mucho más tiempo en ello.

      (* No inventó el tipo (y nunca afirmó haberlo hecho) y no se limitó a tales computadoras, pero el nombre permaneció bloqueado)

      • ESTOLA dice:

        No existe lo “normal”.

        PIC es tanto RISC como Harvard. No importa si comienzas desde TTL, porque puede ser lo que quieras.

        Muchos AVR son Harvard modificados. La mayoría de los CISC más antiguos son Von Newman, pero no exclusivamente. Algunos tienen una ROM interna y un bus externo separado para RAM.

    • MvK dice:

      RÖB dice: “Lo único que no hemos visto es que se esté realizando (no tiene sentido con los chips TTL)”

      Muy bien, morderé: https://la-tecnologia.io/project/20781-breadboard-color-computer-from-ttl
      CPU TTL con arquitectura canalizada para generar VGA de software con una resolución aceptable.

      • ESTOLA dice:

        jajaja

        Simplemente impresionante

  • yeti dice:

    Todas estas CPU y sistemas caseros son muy divertidos de ver y reflexionar.
    Los que tienen cadena son de su propio nivel.
    ¿Qué pasaría después?

    Home Growth: CPU domésticas en sistemas domésticos que ejecutan sistemas operativos de cultura doméstica que contienen su propia cadena de herramientas de desarrollo propio?

    ¿”Hg⁴”?
    Cuatro ¿Adelante?
    Forth probablemente ya esté haciendo esto …
    … ¿hay otros sistemas hg⁴ además de Forth?

    • Ostraco dice:

      Las CPU domésticas ciertamente han enseñado mucho más de lo que normalmente se aprende hoy, a menos que sean un compilador o sistemas integrados.

      • Steven Gann dice:

        De hecho, diseño sistemas integrados simples y obtuve mi maestría en ingeniería informática. Aprendí lógica digital, cómo funcionaban el 68k y el MSP-430 a niveles bajos y cómo trabajar con ellos, y cómo integrarlos en aplicaciones.

        La brecha entre la lógica digital y los microprocesadores nunca se ha superado, y he pasado los últimos 2 años jugando con una arquitectura de CPU casera para llenar ese vacío.

        Mi administrador estudió ingeniería eléctrica en Columbia a principios de los años noventa y cada estudiante tenía que construir una CPU TTL de 8 bits. Quiero que las universidades estadounidenses modernas pongan esa profundidad a disposición de sus planes de estudios.

  • Justin Davis dice:

    No creo que este proyecto sea realmente una arquitectura instruccional. La inclusión de dos bits en la palabra de instrucción para realizar diferentes funciones realmente significa que esta es una arquitectura de cuatro instrucciones. La bifurcación condicional se puede realizar con una instrucción, pero es un poco más complicada. Pero aún así, este es un gran proyecto.

  • bien dice:

    Interesante. Tanto los resortes como los sumideros están codificados en 3 bits, lo que permite un máximo de 8 resortes y 8 sumideros en el bus interno. Del diagrama de bloques parece que hay 3 resortes y 8 lavabos. Esto parece un montón de espacio para agregar fuentes para el cambio y la inversión bit a bit (todos trabajando en un registro existente, por ejemplo, la salida del acumulador, para evitar agregar sumideros), pero es bueno ver cómo implementó esos en los programas, todo además (con retroalimentación y banderas if-zero).

  • olduino dice:

    Gracias por la gran publicación. El trabajo en su conjunto es muy agradable, pero estoy particularmente impresionado por el compilador bellamente organizado. Construí mi propio compilador basado en LCC. Probablemente hubo menos trabajo, pero el tuyo es muy fácil de seguir y aprender. Lo construiré por diversión y lo recordaré para el futuro.

  • Un dron dice:

    HaD dijo: “… y arquitecturas realmente extrañas como Helix”.

    TL; DR: El Helix NO es “extraño”. Es realmente útil cuando se aplica correctamente …

    Yo digo: ¡No hay nada “extraño” en el Helix! Puede parecer “extraño” para un ingeniero relativamente inexperto. El concepto de Helix es simple; un conjunto sincronizado en paralelo de máquinas de estado programables idénticas con un bus de E / S conmutado determinista paralelo común. La arquitectura está definida, tanto matemáticamente como probada en la práctica. Es posible que el Propeller no se parezca a su dispositivo de estado secuencial “habitual” que ve todos los días, pero ciertamente no es “extraño”. Cualquiera puede duplicar el Helix utilizando otros procesadores en paralelo con una parte del controlador y conmutadores de bus de conmutación (imaginando un conjunto de conmutación rápida CPLD de microcontroladores de goma de mascar). Pero recuerde que desde el punto de vista de un microcontrolador, el Helix no es rápido.

    Utilizo el chip Propeller a menudo cuando hago prototipos de aplicaciones donde la aplicación necesita un procesamiento paralelo o similar sin la carga / sobrecarga de un dispositivo impulsado por interrupciones de un solo subproceso que solo interfiere en la fase de desarrollo.

    Al final, aunque producir el proyecto Propeller generalmente no funciona con la parte Propeller, es demasiado caro y no es segundo. (Sin embargo, es necesario un volumen pequeño de bajo riesgo) En su lugar, asigno el código de hélice a un procesador de un solo subproceso usando mayúsculas y / o ramas de estado de interrupción. Pero Helix puede no tener precio al acortar el tiempo de desarrollo (y el tiempo es dinero).

    Helix podría ser el tipo de “Arduino” para la comunidad “Maker” si simplemente no dependieran del intérprete Spin incrustado increíblemente lento desde el principio y crearan un compilador Spin para comenzar (normalmente uso una combinación de Spin y PASM: el Helix es mucho más rápido cuando se programa para ensamblar, aunque todavía suele ser un mínimo de 4 relojes por instrucción).

    Actualmente, puede obtener compiladores C, Forth, etc. completamente gratuitos y bastante rápidos para Helix. Todos tienen una mentalidad comunitaria principalmente, algo que Parallax debería hacer desde el principio. Al final, nunca vimos que el prometido Propeller-II se hiciera realidad. Ese es el verdadero inconveniente para mí.

    Luego está XMOS. No me hagas empezar con XMOS. Quería adoptar XMOS, pero no. Grrr …

    • localroger dice:

      El P8X32A no es barato y no es la solución para la producción de alto volumen, pero para proyectos de bajo volumen y de una sola vez es difícil superarlo. La capacidad de copiar un gran conjunto de hardware de E / S en programas le da una flexibilidad que nada más puede tocar.

      ¿Necesita ocho puertos serie? Hélice.
      ¿Tres salidas VGA y una IIC? Hélice.
      ¿Múltiples IIC porque su chip de fecha y EEPROM tienen la misma dirección? Hélice.
      ¿Funcionan varios SPI por separado en diferentes tarjetas RAM y SD? Hélice.
      ¿Tres resistencias y un conector RCA para obtener una pantalla de video de diagnóstico en su prototipo? Hélice.

      Puede obtener chips más baratos y rápidos con más memoria y un rayo incorporado, pero nada en ningún lado con este tipo de flexibilidad. (¿XMOS está bien, tal vez, pero se está quejando del costo de las hélices?) Hoy en día con Quick Start puede crear una E / S en una hija y tener fácilmente un prototipo adecuado para casi cualquier configuración de E / S tan rápido como la computadora la fábrica puede encenderse. las tablas alrededor. No romperá el precio por debajo del dólar por cantidades de 6 cifras, pero para una industria, arte o un proyecto de pasatiempo único, es exactamente lo que necesita. Y como sugiere Drone, incluso si no es económico en producción, puede explicar muchos problemas de desarrollo antes de que te des cuenta de cómo funcionará el sistema disruptivo en esa MCU de un solo núcleo.

      • Ostraco dice:

        Aproximadamente $ 30 no es tan malo para lo que obtienes.

      • Artenz dice:

        Solo para elegir uno: el STM32F413 tiene salida 10xUART, 5xSPI, 4xI2C, SDIO, 3xCAN, USB y LCD. Entonces, casi toda la hélice puede hacer (también al mismo tiempo), excepto por mucho más.

        http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f413-423/stm32f413vg.html

        No solo 3 salidas VGA, pero ¿quién las necesita realmente?

        • ESTOLA dice:

          Cita: “no 3 salidas VGA, pero ¿quién las necesita realmente?”

          ¡¡¡DUH !!!, gente con tres ojos obviamente.

    • RW versión 0.0.2 dice:

      “El Helix podría ser el tipo de” Arduino “para la comunidad” Maker “

      ¿Puede parpadear 8 LED en PARALELO? !!!! 1111 uno.

    • mancha dice:

      Creo que quieren decir que es extraño en el sentido de que “puede” no parecerse a “su” estado consecutivo habitual que ve todos los días “.

      Todos estos proyectos hablan de crear una lógica de CPU. Creo que llamarían a una CPU tradicional de n-core también extraña para este tipo de proyecto.

      Extraño no significa malo. Simplemente significa “una de estas cosas no es como la otra”.

      • RW versión 0.0.2 dice:

        De hecho, extraño significa cosas diferentes …

        Lo que es extraño … Volvo 850, Ford Taurus, Ferrari 456 y Dodge Neon.

        Correcto, el Dodge Neon es el único que no está disponible como automóvil multipropósito (Estate, Combi, lo que sea)

        Así es, el Volvo 850 tiene un número impar de cilindros.

        De hecho, el Ferrari 456 es el único Grand Tourer.

        Bien, el Ford Taurus era el único disponible con más de un diseño de cilindro. i4, V6

        • RW versión 0.0.2 dice:

          Oh, olvidé el V8 en el Taurus SHO de tercera generación.

          Aunque también con el posterior Toro, esto convierte al Ferrari 456 en el único que no está disponible con turbo, … aunque la disputa es que el Neon nunca lo fue también porque oficialmente se llamaba SRT4

    • ESTOLA dice:

      Cita: “Puede parecer” extraño “para un ingeniero relativamente inexperto”

      Bueno, probablemente sin considerar que comencé en la década de 1970.

      Pero probablemente lo pedí usando un término general como “extraño”.

      Ciertamente es muy de nicho. Y si tuviera que empezar a construir uno de TTL, entonces las cosas podrían ponerse un poco raras.

  • Artenz dice:

    “El Helix NO es” raro “. Es realmente útil si se aplica correctamente …”

    Las cosas pueden resultar extrañas y útiles.

  • ian dice:

    Tal vez una pregunta neob, pero si quisiera construir esta CPU sin tener que comprar las partes (por ejemplo, simplemente copiando la CPU insertando los esquemas en algo como una especia), ¿cuál sería una buena manera de hacerlo (si corresponde)? ? ¿Sería lo suficientemente rápido para copiar y lo suficientemente fácil para compilar y ejecutar mis propios archivos digitales en él?
    Me encantan esos proyectos, pero no tengo espacio para construir un laboratorio de electrónica. Ojalá pudiera construir algo así virtualmente.

    • Artenz dice:

      No estoy seguro de qué tan rápido es, pero aquí hay un simulador: http://www.cburch.com/logisim/

  • TheRegnirps. dice:

    ¿En qué se diferencia este “transporte activado” de la ejecución asincrónica? La gente de ARM ha estado inmersa en CPU ARM experimentales asincrónicas durante algún tiempo.

  • Bill Bohan dice:

    Esto es muy interesante. Tengo otro concepto de Computadora de instrucción única con TTA. Mi objetivo es FPGA.
    El proyecto que aquí se presenta necesita muchos ciclos para realizar operaciones simples. Eso lo ralentizaría. Mi proyecto utiliza la gran cantidad de hardware disponible en FPGA para realizar operaciones en un ciclo de procesador. También apoyo interrupciones y DMA. Mis especificaciones anteriores están en Github en https://github.com/BillBohan/NISC y realmente me gustaría recibir comentarios, sugerencias y solicitudes de funcionalidad adicional.

    • ESTOLA dice:

      FPGA engaña jajaja.

      La combinación en una placa no mejorará el rendimiento, ya que los factores limitantes son los retrasos de la antena de datos y la antena de dirección. Por lo tanto, no pasará de 3 a 5 MHz o incluso menos con cables (antenas) más largos, mientras que FPGA le proporcionará cientos de MHz.

      El otro factor es el número de puertas cortantes. Si tuviera que tomar lo que puede hacer en FPGA y ponerlo en migas de pan, entonces terminaría siendo de un tamaño comparable a un campo de fútbol.

      Tu proyecto suena genial de todos modos y espero que lo hagas, pero aún así no se comparará con hacerlo en una pizarra.

      • Artenz dice:

        Este va a 25 MHz a bordo:
        https://la-tecnologia.com/2015/08/11/vulcan-74-a-masterpiece-of-retro-engineering/

      • Bill Bohan dice:

        El tipo que implementó un procesador con transistores individuales diría que usar TTL es complicado.

        Consideré implementar mi procesador en TTL, pero decidí usar FPGA porque las piezas TTL son difíciles de encontrar. ¿Dónde puedes conseguir el 7489? ¿Tienen 74S89?

        En los años 70 trabajé en placas procesadoras Datapoint 2200 y 5500. Eran alrededor de 12 * x 18 * y tenían de 120 a 130 chips TTL. El 5500 fue el predecesor del Z80 y funcionaba a 20 MHz.

        Mi proyecto tiene más que ver con la arquitectura que con la implementación.

        • ESTOLA dice:

          http://www.ebay.com.au/itm/IC-Microchip-K155RU2-7489PC-USSR-Lot-of-20-pcs-/141922824391?hash=item210b4270c7:g:2bQAAOSwu1VW3kYh

          Transistores !!! Eso es trampa. ¡Necesitamos hacerlo con madera y mármoles!

          • Bill Bohan dice:

            También trabajé en un sistema de control de procesos que implementó lógica con 50 relés. El sistema fue diseñado en la década de 1950.

          • ESTOLA dice:

            Esa tecnología fue mucho más tarde.

            Estaba trabajando en un sistema de retransmisiones en los 80 que tenía literalmente 3 pisos sobre un edificio.

  • salec dice:

    TTL? No creo que signifique lo que tú crees que significa. ¿Llamaría a UART “RS-232”?

    ¡Todos repiten que esta es una computadora TTL, pero el hecho es que la computadora tiene HCMOS incorporado! El término que está buscando es una serie IC de computadora de corte de bits serie MSI lógica 74.

    • ESTOLA dice:

      Si toma TTL para referirse a los niveles de voltaje, sí, es TTL.
      Si considera TTL como la lógica del transistor del transistor, sí, porque los chips son TTL de entrada Schottky de baja potencia (del esquema).

      Y sí, son MSI con algo de SSI.

      Ahora hay áreas grises como HCT, que es CMOS rápido con voltajes TTL.

      Algunos incluso dicen silicio de óxido de metal complementario, lo cual no es correcto, porque puede obtener chips CMOS y MOSFET con arseniuro de galio (GaAs). Es un sustrato de óxido de metal complementario que se relaciona con las propiedades físicas del proceso de fabricación.

      Llamando a esto una computadora TTL, entregue el mensaje. ¿Es correcto? Bueno, eso depende de quién estés hablando.

    • software dice:

      Nota al margen: ¡También utilicé puertas de resistencias de diodo pasivo! (ver: detector nulo, lógica de computadora de control lógico, ruta de selección de entrada ACC, etc.)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *