25 votos

¿Cuáles son las ventajas de utilizar FPGAs frente a TTL en la arquitectura de los introordenadores?

Enseño el único curso de arquitectura informática en una universidad de artes liberales. Se trata de una asignatura obligatoria para los estudiantes de informática. No tenemos ingeniería informática, ingeniería eléctrica, otros cursos de hardware, etc. Mi objetivo principal en el curso es que los estudiantes entiendan hasta el nivel de puerta cómo funcionan los ordenadores, que creo que aprenden mejor a través de un laboratorio de hardware y no sólo a través de un libro de texto ( Organización y diseño de ordenadores de Hennessy y Patterson). Mi objetivo secundario es entusiasmarles con la arquitectura de ordenadores y aumentar su entusiasmo por la informática. Prepararles directamente para la industria no es un objetivo, aunque sí lo es motivarles para que estudien más arquitectura informática. Por lo general, los estudiantes no han tenido ninguna experiencia construyendo nada ni han seguido un curso de laboratorio de nivel universitario. Suelen asistir entre 10 y 15 estudiantes por semestre.

Llevo impartiendo el curso desde 1998 de forma similar a como me enseñaron arquitectura de ordenadores y electrónica digital a finales de los 80 en el MIT: utilizando chips DIP TTL en protoboards. En la primera tarea de laboratorio de hardware, los estudiantes construyen un sumador completo. Hacia la mitad del semestre, empiezan a construir un ordenador sencillo con un conjunto de instrucciones de 8 bits. Para reducir el cableado, les proporciono una placa de circuito impreso con parte de la electrónica (dos flip-flops D, dos ALU LS 181 de 4 bits conectadas entre sí para actuar como una ALU de 8 bits y un búfer triestado). En el primero de estos laboratorios, derivan las señales de control (muy simples) para los dos formatos de instrucción y construyen el circuito, introduciendo las instrucciones en los interruptores y leyendo los resultados de las luces. En el segundo de los laboratorios, añaden un contador de programa (2 LS163) y una EPROM (que mi pregunta original antes de que cambiara a cómo debería enseñar arquitectura introductoria). En el laboratorio final, añaden una instrucción de bifurcación condicional. Aunque los estudiantes pasan bastante tiempo cableando y depurando, creo que es ahí donde tiene lugar gran parte del aprendizaje, y los estudiantes se van con una verdadera sensación de logro.

Sin embargo, la gente de este foro me ha estado diciendo que debería pasarme a las FPGA, con las que no he trabajado antes. Soy ingeniero de software, no informático, y hace tiempo que dejé los estudios, pero soy capaz de aprender. No podría conseguir mucho dinero ( tal vez unos cuantos miles de dólares) para sustituir nuestros actuales entrenadores digitales. Tenemos un único analizador lógico.

Dados mis objetivos y limitaciones, ¿recomendaríais los EE que me mantuviera en mi enfoque actual de cambiar a uno basado en FPGAs? En caso afirmativo, ¿podríais indicarme algún material con el que formarme?

Según lo solicitado, aquí está un enlace al programa de estudios y a las tareas de laboratorio .

Incorporación: Sí, también es un curso de lógica digital. Cuando llegué a mi universidad, los estudiantes debían cursar un semestre de arquitectura de ordenadores y otro de lógica digital, y yo los combiné en un solo semestre. Por supuesto, eso es una afirmación sobre el pasado, no sobre el futuro.

3voto

jame_smith Puntos 15

Limítate a los dispositivos TTL básicos de sobremesa... al menos durante el inicio del curso.

Una de las cosas más interesantes de encadenar puertas individuales en el escritorio, sobre todo si se utilizan dispositivos lentos, es que los estudiantes pueden colocar un osciloscopio en las entradas/salidas. Asegúrate de que tus apuntes de laboratorio incluyen diseños inestables con realimentación para provocar la oscilación y pide a los alumnos que expliquen por qué oscila.

Aquí hay muchas cosas importantes. El tiempo de subida y bajada se puede medir incluso con un osciloscopio básico, al igual que el retardo de propagación. Es muy importante que los estudiantes aprendan que la lógica digital es sólo un proceso analógico con umbrales preestablecidos para "encendido" y "apagado". Estos comportamientos del mundo real se vuelven cada vez más importantes a medida que aumenta la velocidad de transición y la complejidad de la lógica. Para un curso de introducción a la arquitectura de computadores en el que estás construyendo una MCU muy básica en una FPGA, el tiempo de propagación (incluso dentro de la FPGA) pondrá un límite superior a la velocidad de reloj de la MCU antes de que comience a comportarse de forma impredecible.

Me di cuenta de que la mayoría de los estudiantes no entendían la realidad física de los circuitos digitales hasta que los veían en un osciloscopio, y sigue siendo demasiado fácil caer en la trampa de suponer que las transiciones son instantáneas y las formas de onda son cuadrados perfectos.

Tienes todo un semestre, así que no necesitas dedicar más de un par de semanas de tiempo de enseñanza a asegurarte de que los estudiantes entienden las implicaciones en el mundo real de los circuitos digitales con los que están trabajando.

A continuación, se pasa a la traducción a HDL y la construcción de cosas en FPGAs si es donde quieres ir, pero no hay sustituto para la construcción de cosas en el banco y el examen de su comportamiento en el mundo real.

2voto

Andrew Walker Puntos 9038

Apreciando plenamente la importancia de algunos experiencia práctica con el ensamblaje de circuitos físicos, creo que también es importante reconocer que no se pueden abarcar las prácticas informáticas modernas sin algún nivel de algo que "parezca" simulación o abstracción demasiado oculta, así que lo mejor que se puede hacer es intentar hacer algo de trabajo en cada nivel antes de añadir la abstracción suficiente para que sea plausible intentar el siguiente nivel de complejidad. En el curso del MIT al que te refieres, por ejemplo, en un momento dado se empezó a hacer una simulación por software de una máquina RISC de 32 bits que funcionaba sobre los chips y módulos de una máquina microprogramada de 8 bits que se había "construido" físicamente. En ese punto, yo diría que es más eficaz simplemente implementar dicha máquina en una FPGA (algo que sospecho que probablemente han hecho desde entonces).

A la luz de esto, mi tentación sería tratar de incluir tanto una fase de chips y cables al principio, y una fase FPGA más adelante en el curso. Dado que ya tienes los kits de protoboard, podrías mantener los primeros laboratorios en ellos, y utilizar una placa FPGA o tal vez un módulo FPGA breadboardable para los laboratorios posteriores. Construir una máquina híbrida en la que la FPGA dependa de algún circuito externo que implemente parte del procesador sería posible, pero parecería muy artificial; lo más realista sería cambiar completamente de tecnología en el punto en el que la complejidad supere la de una pieza de protoboard.

Deberías poder encontrar placas FPGA independientes por menos de 100 $/unidad a precios educativos.

Otra opción podría ser construir el tuyo propio como parte de la clase, quizás construyendo una interfaz de carga serie FPGA como primera parte del proyecto. Una buena ventaja de esto es que el coste sería lo suficientemente bajo como para que los estudiantes pudieran conservar sus placas en lugar de tener que entregarlas al final del trimestre, lo que, con suerte, generaría un interés y una concienciación constantes entre unos cuantos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X